CYOA Wiki
cyoawiki
https://cyoa.miraheze.org/wiki/Main_Page
MediaWiki 1.40.1
first-letter
Media
Special
Talk
User
User talk
CYOA Wiki
CYOA Wiki talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Campaign
Campaign talk
Module
Module talk
Main Page
0
1
1
2023-06-01T19:17:50Z
MediaWiki default
1
Create main page
wikitext
text/x-wiki
__NOTOC__
== Welcome to {{SITENAME}}! ==
This Main Page was created automatically and it seems it hasn't been replaced yet.
=== For the bureaucrat(s) of this wiki ===
Hello, and welcome to your new wiki! Thank you for choosing Miraheze for the hosting of your wiki, we hope you will enjoy our hosting.
You can immediately start working on your wiki or whenever you want.
Need help? No problem! We will help you with your wiki as needed. To start, try checking out these helpful links:
* [[mw:Special:MyLanguage/Help:Contents|MediaWiki guide]] (e.g. navigation, editing, deleting pages, blocking users)
* [[meta:Special:MyLanguage/FAQ|Miraheze FAQ]]
* [[meta:Special:MyLanguage/Request features|Request settings changes on your wiki]]. (Extensions, Skin and Logo/Favicon changes should be done through [[Special:ManageWiki]] on your wiki, see [[meta:Special:MyLanguage/ManageWiki|ManageWiki]] for more information.)
==== I still don't understand X! ====
Well, that's no problem. Even if something isn't explained in the documentation/FAQ, we are still happy to help you. You can find us here:
* [[meta:Special:MyLanguage/Help center|On our own Miraheze wiki]]
* On [[phab:|Phabricator]]
* On [https://miraheze.org/discord Discord]
* On IRC in #miraheze on irc.libera.chat ([irc://irc.libera.chat/%23miraheze direct link]; [https://web.libera.chat/?channel=#miraheze webchat])
=== For visitors of this wiki ===
Hello, the default Main Page of this wiki (this page) has not yet been replaced by the bureaucrat(s) of this wiki. The bureaucrat(s) might still be working on a Main Page, so please check again later!
21236ac3f8d65e5563b6da6b70815ca6bf1e6616
4
1
2023-06-01T19:23:00Z
Pasadena
2
Protected "[[Main Page]]": High traffic page ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
__NOTOC__
== Welcome to {{SITENAME}}! ==
This Main Page was created automatically and it seems it hasn't been replaced yet.
=== For the bureaucrat(s) of this wiki ===
Hello, and welcome to your new wiki! Thank you for choosing Miraheze for the hosting of your wiki, we hope you will enjoy our hosting.
You can immediately start working on your wiki or whenever you want.
Need help? No problem! We will help you with your wiki as needed. To start, try checking out these helpful links:
* [[mw:Special:MyLanguage/Help:Contents|MediaWiki guide]] (e.g. navigation, editing, deleting pages, blocking users)
* [[meta:Special:MyLanguage/FAQ|Miraheze FAQ]]
* [[meta:Special:MyLanguage/Request features|Request settings changes on your wiki]]. (Extensions, Skin and Logo/Favicon changes should be done through [[Special:ManageWiki]] on your wiki, see [[meta:Special:MyLanguage/ManageWiki|ManageWiki]] for more information.)
==== I still don't understand X! ====
Well, that's no problem. Even if something isn't explained in the documentation/FAQ, we are still happy to help you. You can find us here:
* [[meta:Special:MyLanguage/Help center|On our own Miraheze wiki]]
* On [[phab:|Phabricator]]
* On [https://miraheze.org/discord Discord]
* On IRC in #miraheze on irc.libera.chat ([irc://irc.libera.chat/%23miraheze direct link]; [https://web.libera.chat/?channel=#miraheze webchat])
=== For visitors of this wiki ===
Hello, the default Main Page of this wiki (this page) has not yet been replaced by the bureaucrat(s) of this wiki. The bureaucrat(s) might still be working on a Main Page, so please check again later!
21236ac3f8d65e5563b6da6b70815ca6bf1e6616
6
4
2023-06-01T19:45:31Z
Pasadena
2
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
c2a2028650e56d98dafeedda55212a7246ecbc9e
10
6
2023-06-01T20:01:38Z
Pasadena
2
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
90b51b8ceaedabb2ed3dfca70c9b5abe231de1d4
11
10
2023-06-01T20:25:22Z
Pasadena
2
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quickstart ==
* [[Category:CYOAs]]
** [[Category:Static CYOAs]]
** [[Category:Interactive CYOAs]]
* [[Category:Authors]]
** [[Category:Static Authors]]
** [[Category:Interactive Authors]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
35f0ff169eddae6f0ea07048308038c1ad338a9c
12
11
2023-06-01T20:27:02Z
Pasadena
2
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quickstart ==
* [[:Category:CYOAs|CYOAs]]
** [[:Category:Static CYOAs|Static CYOAs]]
** [[:Category:Interactive CYOAs|Interactive CYOAs]]
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
55b574bf688d4ab352a4690e1605eae99157bbe9
20
12
2023-06-01T20:49:04Z
Pasadena
2
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** [[:Category:Static CYOAs|Static CYOAs]]
** [[:Category:Interactive CYOAs|Interactive CYOAs]]
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
== Contributing ==
Want to contribute to this wiki? See the articles below.
8fa1de622998b1af81c6b196813e1312b3a6995f
33
20
2023-06-01T21:41:25Z
Pasadena
2
/* Contributing */
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** [[:Category:Static CYOAs|Static CYOAs]]
** [[:Category:Interactive CYOAs|Interactive CYOAs]]
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* [[CYOA_Wiki:Manual of Style|Manual of Style]]
* [[:Category:Templates|Templates]]
cd9edbf0bedb4d5d802103afd50d205616961f7c
42
33
2023-06-01T21:55:49Z
Pasadena
2
/* Contributing */
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** [[:Category:Static CYOAs|Static CYOAs]]
** [[:Category:Interactive CYOAs|Interactive CYOAs]]
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* [[CYOA_Wiki:Manual of Style|Manual of Style]]
* [[:Category:Templates|Templates]]
* [[Special:InfoboxBuilder|InfoboxBuilder]]
2cdb18c16fa64bc0e042006fbb1653cf7055baaa
45
42
2023-06-01T22:09:59Z
Pasadena
2
/* Contributing */
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** [[:Category:Static CYOAs|Static CYOAs]]
** [[:Category:Interactive CYOAs|Interactive CYOAs]]
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* [[CYOA_Wiki:Manual of Style|Manual of Style]]
* [[:Category:Templates|Templates]]
* Create Infoboxes at [[Special:InfoboxBuilder|InfoboxBuilder]]
df2b0dbc201c087710a4e4c4759ddf8495918102
46
45
2023-06-01T22:10:18Z
Pasadena
2
/* Contributing */
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** [[:Category:Static CYOAs|Static CYOAs]]
** [[:Category:Interactive CYOAs|Interactive CYOAs]]
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* [[CYOA_Wiki:Manual of Style|Manual of Style]]
* [[:Category:Templates|Templates]]
* Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]]
09b90f3a223d280692a74b52a8dbe2d10fae1cfc
User:Pasadena
2
2
2
2023-06-01T19:21:56Z
Pasadena
2
Created page with "Hi, my name is Pasadena and I'm the creator of this wiki. == Links and Contact == Github: https://github.com/upasadena Github Site: https://upasadena.github.io/ My CYOAs: https://upasadena.github.io/cyoas/ My Old Site: https://pasadena.neocities.org Email: underscore.pasadena@gmail.com Reddit: _pasadena Discord: Pasadena#9851"
wikitext
text/x-wiki
Hi, my name is Pasadena and I'm the creator of this wiki.
== Links and Contact ==
Github: https://github.com/upasadena
Github Site: https://upasadena.github.io/
My CYOAs: https://upasadena.github.io/cyoas/
My Old Site: https://pasadena.neocities.org
Email: underscore.pasadena@gmail.com
Reddit: _pasadena
Discord: Pasadena#9851
b86a42dfad9fb5693a8cdb09e0afe899a4d7f63c
3
2
2023-06-01T19:22:16Z
Pasadena
2
/* Links and Contact */
wikitext
text/x-wiki
Hi, my name is Pasadena and I'm the creator of this wiki.
== Links and Contact ==
Github: https://github.com/upasadena
Github Site: https://upasadena.github.io/
My CYOAs: https://upasadena.github.io/cyoas/
My Old Site: https://pasadena.neocities.org
Email: underscore.pasadena@gmail.com
Reddit: _pasadena
Discord: Pasadena#9851
c9f9944b1da2165f9c03d01d0ed91ff0a0dee78b
5
3
2023-06-01T19:41:47Z
Pasadena
2
Protected "[[User:Pasadena]]" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
Hi, my name is Pasadena and I'm the creator of this wiki.
== Links and Contact ==
Github: https://github.com/upasadena
Github Site: https://upasadena.github.io/
My CYOAs: https://upasadena.github.io/cyoas/
My Old Site: https://pasadena.neocities.org
Email: underscore.pasadena@gmail.com
Reddit: _pasadena
Discord: Pasadena#9851
c9f9944b1da2165f9c03d01d0ed91ff0a0dee78b
MediaWiki:Citizen-footer-desc
8
4
8
2023-06-01T19:56:00Z
Pasadena
2
Created page with "A wiki for CYOAs and their authors."
wikitext
text/x-wiki
A wiki for CYOAs and their authors.
5e93e8795850a14d80aa984d7a54ced9400e6ca8
MediaWiki:Citizen-footer-tagline
8
5
9
2023-06-01T19:58:50Z
Pasadena
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Category:CYOAs
14
6
13
2023-06-01T20:27:23Z
Pasadena
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Category:Static CYOAs
14
7
14
2023-06-01T20:28:35Z
Pasadena
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
CYOA Wiki:Copyrights
4
8
15
2023-06-01T20:29:16Z
Pasadena
2
Created page with "Content is available under [https://www.gnu.org/licenses/fdl-1.3.en.html GNU Free Document License 1.3] unless otherwise noted."
wikitext
text/x-wiki
Content is available under [https://www.gnu.org/licenses/fdl-1.3.en.html GNU Free Document License 1.3] unless otherwise noted.
30b26e698c4627cd29ae238b1c9b31478ddd415a
Category:Interactive CYOAs
14
9
16
2023-06-01T20:29:43Z
Pasadena
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Category:Authors
14
10
17
2023-06-01T20:30:53Z
Pasadena
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Category:Static Authors
14
11
18
2023-06-01T20:31:05Z
Pasadena
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Category:Interactive Authors
14
12
19
2023-06-01T20:31:14Z
Pasadena
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Template:Author
10
13
21
2023-06-01T21:01:38Z
Pasadena
2
Infobox created with infobox builder.
wikitext
text/x-wiki
<infobox><title source="name"><default>{{PAGENAME}}</default></title><image source="image"/><data source="aliases"><label>Aliases</label></data><title source="social_media"><default>Social Media</default></title><data source="reddit"><label>Reddit</label></data><data source="discord"><label>Discord</label></data><data source="github"><label>Github</label></data><data source="website"><label>Website</label></data><data source="cyoas"><label>CYOAs</label></data><data source="other_social_media"><label>Other</label></data></infobox>
3714284979b21d74b0bbc7df9636fa0fd513446c
22
21
2023-06-01T21:10:36Z
Pasadena
2
wikitext
text/x-wiki
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="aliases">
<label>Aliases</label>
</data>
<title source="social_media">
<default>Social Media</default>
</title>
<data source="reddit">
<label>Reddit</label>
</data>
<data source="discord">
<label>Discord</label>
</data>
<data source="github">
<label>Github</label>
</data>
<data source="website">
<label>Website</label>
</data>
<data source="cyoas">
<label>CYOAs</label>
</data>
<data source="other_social_media">
<label>Other</label>
</data>
</infobox>
6d1ac81c56d2356a74caa6c3fbfb0077efa64cf0
23
22
2023-06-01T21:11:07Z
Pasadena
2
wikitext
text/x-wiki
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="aliases">
<label>Aliases</label>
</data>
<title source="social_media">
<default>Social Media</default>
</title>
<data source="reddit">
<label>Reddit</label>
</data>
<data source="discord">
<label>Discord</label>
</data>
<data source="github">
<label>Github</label>
</data>
<data source="email">
<label>Email</label>
</data>
<data source="website">
<label>Website</label>
</data>
<data source="cyoas">
<label>CYOAs</label>
</data>
<data source="other_social_media">
<label>Other</label>
</data>
</infobox>
7c9651f405e05e217a7d070c578d330dad14027b
24
23
2023-06-01T21:11:37Z
Pasadena
2
wikitext
text/x-wiki
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="aliases">
<label>Aliases</label>
</data>
<title source="social_media">
<default>Social Media</default>
</title>
<data source="reddit">
<label>Reddit</label>
</data>
<data source="discord">
<label>Discord</label>
</data>
<data source="github">
<label>Github</label>
</data>
<data source="email">
<label>Email</label>
</data>
<data source="website">
<label>Website</label>
</data>
<data source="cyoa_index">
<label>CYOA Index</label>
</data>
<data source="other_social_media">
<label>Other</label>
</data>
</infobox>
47ef4f7cca4fc60cc1d8af1b04520634f5816698
26
24
2023-06-01T21:17:18Z
Pasadena
2
wikitext
text/x-wiki
== Template code ==
<pre>
{{Template:Author
|name=Pasadena
|image=
|aliases=upasadena<br />_pasadena
|reddit=[https://www.reddit.com/user/_pasadena _pasadena]
|discord=Pasadena#9851
|github=https://github.com/upasadena
|email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com]
|website=https://upasadena.github.io/
|cyoa_index=https://upasadena.github.io/cyoas/
}}
</pre>
== Category ==
Don't forget to add the applicable categories to the author's page.
<pre>
[[Category:Authors]]
[[Category:Static Authors]]
[[Category:Interactive Authors]]
</pre>
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="aliases">
<label>Aliases</label>
</data>
<title source="social_media">
<default>Social Media</default>
</title>
<data source="reddit">
<label>Reddit</label>
</data>
<data source="discord">
<label>Discord</label>
</data>
<data source="github">
<label>Github</label>
</data>
<data source="email">
<label>Email</label>
</data>
<data source="website">
<label>Website</label>
</data>
<data source="cyoa_index">
<label>CYOA Index</label>
</data>
<data source="other_social_media">
<label>Other</label>
</data>
</infobox>
81007b8148d6fdb2a3d050ee980e1f481f896cbd
27
26
2023-06-01T21:18:46Z
Pasadena
2
wikitext
text/x-wiki
== Template code ==
Note that all of these are optional, and may be added at your leisure.
<pre>
{{Template:Author
|name=
|image=
|aliases=
|reddit=
|discord=
|github=
|email=[mailto:example@gmail.com example@gmail.com]
|website=
|cyoa_index=
|other_social_media=
}}
</pre>
== Category ==
Don't forget to add the applicable categories to the author's page.
<pre>
[[Category:Authors]]
[[Category:Static Authors]]
[[Category:Interactive Authors]]
</pre>
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="aliases">
<label>Aliases</label>
</data>
<title source="social_media">
<default>Social Media</default>
</title>
<data source="reddit">
<label>Reddit</label>
</data>
<data source="discord">
<label>Discord</label>
</data>
<data source="github">
<label>Github</label>
</data>
<data source="email">
<label>Email</label>
</data>
<data source="website">
<label>Website</label>
</data>
<data source="cyoa_index">
<label>CYOA Index</label>
</data>
<data source="other_social_media">
<label>Other</label>
</data>
</infobox>
9038d6f9b1d7010a005ef25345d14a92bf1df158
28
27
2023-06-01T21:24:19Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
== Template code ==
Note that all of these are optional, and may be added at your leisure.
<pre>
{{Template:Author
|name=
|image=
|aliases=
|reddit=
|discord=
|github=
|email=[mailto:example@gmail.com example@gmail.com]
|website=
|cyoa_index=
|other_social_media=
}}
</pre>
== Category ==
Don't forget to add the applicable categories to the author's page.
<pre>
[[Category:Authors]]
[[Category:Static Authors]]
[[Category:Interactive Authors]]
</pre>
</noinclude>
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="aliases">
<label>Aliases</label>
</data>
<title source="social_media">
<default>Social Media</default>
</title>
<data source="reddit">
<label>Reddit</label>
</data>
<data source="discord">
<label>Discord</label>
</data>
<data source="github">
<label>Github</label>
</data>
<data source="email">
<label>Email</label>
</data>
<data source="website">
<label>Website</label>
</data>
<data source="cyoa_index">
<label>CYOA Index</label>
</data>
<data source="other_social_media">
<label>Other</label>
</data>
</infobox>
0932914a11dad23f3d2b0526be9908a3c4ceab9c
35
28
2023-06-01T21:43:29Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
[[Category:Templates]
== Template code ==
Note that all of these are optional, and may be added at your leisure.
<pre>
{{Template:Author
|name=
|image=
|aliases=
|reddit=
|discord=
|github=
|email=[mailto:example@gmail.com example@gmail.com]
|website=
|cyoa_index=
|other_social_media=
}}
</pre>
== Category ==
Don't forget to add the applicable categories to the author's page.
<pre>
[[Category:Authors]]
[[Category:Static Authors]]
[[Category:Interactive Authors]]
</pre>
</noinclude>
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="aliases">
<label>Aliases</label>
</data>
<title source="social_media">
<default>Social Media</default>
</title>
<data source="reddit">
<label>Reddit</label>
</data>
<data source="discord">
<label>Discord</label>
</data>
<data source="github">
<label>Github</label>
</data>
<data source="email">
<label>Email</label>
</data>
<data source="website">
<label>Website</label>
</data>
<data source="cyoa_index">
<label>CYOA Index</label>
</data>
<data source="other_social_media">
<label>Other</label>
</data>
</infobox>
63975bef0317f5ce29749a004b535af5d52f33de
36
35
2023-06-01T21:43:56Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
[[Category:Templates]]
== Template code ==
Note that all of these are optional, and may be added at your leisure.
<pre>
{{Template:Author
|name=
|image=
|aliases=
|reddit=
|discord=
|github=
|email=[mailto:example@gmail.com example@gmail.com]
|website=
|cyoa_index=
|other_social_media=
}}
</pre>
== Category ==
Don't forget to add the applicable categories to the author's page.
<pre>
[[Category:Authors]]
[[Category:Static Authors]]
[[Category:Interactive Authors]]
</pre>
</noinclude>
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="aliases">
<label>Aliases</label>
</data>
<title source="social_media">
<default>Social Media</default>
</title>
<data source="reddit">
<label>Reddit</label>
</data>
<data source="discord">
<label>Discord</label>
</data>
<data source="github">
<label>Github</label>
</data>
<data source="email">
<label>Email</label>
</data>
<data source="website">
<label>Website</label>
</data>
<data source="cyoa_index">
<label>CYOA Index</label>
</data>
<data source="other_social_media">
<label>Other</label>
</data>
</infobox>
25e8ac486134b5689c2a5d79b0cb250510e4db94
37
36
2023-06-01T21:46:54Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
[[Category:Templates]]
== Template code ==
Note that all of these are optional, and may be added at your leisure.
<pre>
{{Template:Author
|name=
|image=
|aliases=
|reddit=
|discord=
|youtube=
|github=
|email=[mailto:example@gmail.com example@gmail.com]
|website=
|cyoa_index=
|other_social_media=
}}
</pre>
== Category ==
Don't forget to add the applicable categories to the author's page.
<pre>
[[Category:Authors]]
[[Category:Static Authors]]
[[Category:Interactive Authors]]
</pre>
</noinclude>
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="aliases">
<label>Aliases</label>
</data>
<title source="social_media">
<default>Social Media</default>
</title>
<data source="reddit">
<label>Reddit</label>
</data>
<data source="discord">
<label>Discord</label>
</data>
<data source="youtube">
<label>Youtube</label>
</data>
<data source="github">
<label>Github</label>
</data>
<data source="email">
<label>Email</label>
</data>
<data source="website">
<label>Website</label>
</data>
<data source="cyoa_index">
<label>CYOA Index</label>
</data>
<data source="other_social_media">
<label>Other</label>
</data>
</infobox>
ed690adaaaef1efda86cf457a9108198de22f334
39
37
2023-06-01T21:48:00Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
[[Category:Templates]]
== Template code ==
Note that all of these are optional, and may be added at your leisure.
<pre>
{{Template:Author
|name=
|image=
|aliases=
|reddit=
|discord=
|youtube=
|github=
|email=[mailto:example@gmail.com example@gmail.com]
|website=
|cyoa_index=
|other_social_media=
}}
</pre>
== Category ==
Don't forget to add the applicable categories to the author's page.
<pre>
[[Category:Authors]]
[[Category:Static Authors]]
[[Category:Interactive Authors]]
</pre>
</noinclude>
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="aliases">
<label>Aliases</label>
</data>
<title source="social_media">
<default>Social Media</default>
</title>
<data source="reddit">
<label>Reddit</label>
</data>
<data source="discord">
<label>Discord</label>
</data>
<data source="youtube">
<label>YouTube</label>
</data>
<data source="github">
<label>Github</label>
</data>
<data source="email">
<label>Email</label>
</data>
<data source="website">
<label>Website</label>
</data>
<data source="cyoa_index">
<label>CYOA Index</label>
</data>
<data source="other_social_media">
<label>Other</label>
</data>
</infobox>
e1a4b5f44881a1d7a011afd8f4dc1e82d16589f6
40
39
2023-06-01T21:48:36Z
Pasadena
2
Protected "[[Template:Author]]": High traffic page ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))
wikitext
text/x-wiki
<noinclude>
[[Category:Templates]]
== Template code ==
Note that all of these are optional, and may be added at your leisure.
<pre>
{{Template:Author
|name=
|image=
|aliases=
|reddit=
|discord=
|youtube=
|github=
|email=[mailto:example@gmail.com example@gmail.com]
|website=
|cyoa_index=
|other_social_media=
}}
</pre>
== Category ==
Don't forget to add the applicable categories to the author's page.
<pre>
[[Category:Authors]]
[[Category:Static Authors]]
[[Category:Interactive Authors]]
</pre>
</noinclude>
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="aliases">
<label>Aliases</label>
</data>
<title source="social_media">
<default>Social Media</default>
</title>
<data source="reddit">
<label>Reddit</label>
</data>
<data source="discord">
<label>Discord</label>
</data>
<data source="youtube">
<label>YouTube</label>
</data>
<data source="github">
<label>Github</label>
</data>
<data source="email">
<label>Email</label>
</data>
<data source="website">
<label>Website</label>
</data>
<data source="cyoa_index">
<label>CYOA Index</label>
</data>
<data source="other_social_media">
<label>Other</label>
</data>
</infobox>
e1a4b5f44881a1d7a011afd8f4dc1e82d16589f6
41
40
2023-06-01T21:53:54Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
[[Category:Templates]]
== Template code ==
Note that all of these are optional, and may be added at your leisure.
<pre>
{{Author
|name=
|image=
|aliases=
|reddit=
|discord=
|youtube=
|github=
|email=[mailto:example@gmail.com example@gmail.com]
|website=
|cyoa_index=
|other_social_media=
}}
</pre>
== Category ==
Don't forget to add the applicable categories to the author's page.
<pre>
[[Category:Authors]]
[[Category:Static Authors]]
[[Category:Interactive Authors]]
</pre>
</noinclude>
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="aliases">
<label>Aliases</label>
</data>
<title source="social_media">
<default>Social Media</default>
</title>
<data source="reddit">
<label>Reddit</label>
</data>
<data source="discord">
<label>Discord</label>
</data>
<data source="youtube">
<label>YouTube</label>
</data>
<data source="github">
<label>Github</label>
</data>
<data source="email">
<label>Email</label>
</data>
<data source="website">
<label>Website</label>
</data>
<data source="cyoa_index">
<label>CYOA Index</label>
</data>
<data source="other_social_media">
<label>Other</label>
</data>
</infobox>
16bd33140e26b1b0d23e54d289c9ff5263b2ff9e
Pasadena
0
14
25
2023-06-01T21:13:56Z
Pasadena
2
Created page with "[[Category:Authors]] [[Category:Interactive Authors]] {{Template:Author |name=Pasadena |image= |aliases=upasadena<br />_pasadena |reddit=[https://www.reddit.com/user/_pasadena _pasadena] |discord=Pasadena#9851 |github=https://github.com/upasadena |email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com] |website=https://upasadena.github.io/ |cyoa_index=https://upasadena.github.io/cyoas/ }}"
wikitext
text/x-wiki
[[Category:Authors]]
[[Category:Interactive Authors]]
{{Template:Author
|name=Pasadena
|image=
|aliases=upasadena<br />_pasadena
|reddit=[https://www.reddit.com/user/_pasadena _pasadena]
|discord=Pasadena#9851
|github=https://github.com/upasadena
|email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com]
|website=https://upasadena.github.io/
|cyoa_index=https://upasadena.github.io/cyoas/
}}
ddd122e4305360d6c66281def5b57a494008e0fd
29
25
2023-06-01T21:24:34Z
Pasadena
2
wikitext
text/x-wiki
[[Category:Authors]]
[[Category:Interactive Authors]]
{{Template:Author
|name=Pasadena
|image=
|aliases=upasadena<br />_pasadena
|reddit=[https://www.reddit.com/user/_pasadena _pasadena]
|discord=Pasadena#9851
|github=https://github.com/upasadena
|email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com]
|website=https://upasadena.github.io/
|cyoa_index=https://upasadena.github.io/cyoas/
}}
Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s.
e0b08d9774ef6dfca6d8232dfb7420d8fcefced8
30
29
2023-06-01T21:28:04Z
Pasadena
2
wikitext
text/x-wiki
[[Category:Authors]]
[[Category:Interactive Authors]]
{{Template:Author
|name=Pasadena
|image=
|aliases=upasadena<br />_pasadena
|reddit=[https://www.reddit.com/user/_pasadena _pasadena]
|discord=Pasadena#9851
|github=https://github.com/upasadena
|email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com]
|website=https://upasadena.github.io/
|cyoa_index=https://upasadena.github.io/cyoas/
}}
Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s.
== CYOAs ==
=== Interactive ===
Pasadena has made the following Interactive CYOAs:
* [https://upasadena.github.io/cyoas/living-god/ Living God]
* [https://upasadena.github.io/cyoas/ultimate-god/ Ultimate God]
* [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised]
* [https://upasadena.github.io/cyoas/jrpg-traitor/ JRPG Traitor]
==== Incomplete/WIP ====
* [https://upasadena.github.io/cyoas/awakened-god/ Awakened God]
cf4fa94dedfcf44fd282cbf487e23ccd7b0c05e4
31
30
2023-06-01T21:32:06Z
Pasadena
2
wikitext
text/x-wiki
[[Category:Authors]]
[[Category:Interactive Authors]]
{{Template:Author
|name=Pasadena
|image=
|aliases=upasadena<br />_pasadena
|reddit=[https://www.reddit.com/user/_pasadena _pasadena]
|discord=Pasadena#9851
|github=https://github.com/upasadena
|email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com]
|website=https://upasadena.github.io/
|cyoa_index=https://upasadena.github.io/cyoas/
}}
Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s.
== CYOAs ==
=== Interactive ===
Pasadena has made the following Interactive CYOAs:
* [[Living God]] ([https://upasadena.github.io/cyoas/living-god/ link])
* [[Ultimate God]] ([https://upasadena.github.io/cyoas/ultimate-god/ link])
* [[Worm V3 Revised]] ([https://upasadena.github.io/cyoas/worm/v3/ link])
* [[JRPG Traitor]] ([https://upasadena.github.io/cyoas/jrpg-traitor/ link])
==== Incomplete/WIP ====
* [[Awakened God]] ([https://upasadena.github.io/cyoas/awakened-god/ Awakened God])
ecbc175bfb59b200574ee76d2c90ebd193cfebc3
32
31
2023-06-01T21:32:19Z
Pasadena
2
/* Incomplete/WIP */
wikitext
text/x-wiki
[[Category:Authors]]
[[Category:Interactive Authors]]
{{Template:Author
|name=Pasadena
|image=
|aliases=upasadena<br />_pasadena
|reddit=[https://www.reddit.com/user/_pasadena _pasadena]
|discord=Pasadena#9851
|github=https://github.com/upasadena
|email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com]
|website=https://upasadena.github.io/
|cyoa_index=https://upasadena.github.io/cyoas/
}}
Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s.
== CYOAs ==
=== Interactive ===
Pasadena has made the following Interactive CYOAs:
* [[Living God]] ([https://upasadena.github.io/cyoas/living-god/ link])
* [[Ultimate God]] ([https://upasadena.github.io/cyoas/ultimate-god/ link])
* [[Worm V3 Revised]] ([https://upasadena.github.io/cyoas/worm/v3/ link])
* [[JRPG Traitor]] ([https://upasadena.github.io/cyoas/jrpg-traitor/ link])
==== Incomplete/WIP ====
* [[Awakened God]] ([https://upasadena.github.io/cyoas/awakened-god/ link])
3216d94e3887fe3687dffd26d17335d32049b3d6
38
32
2023-06-01T21:47:37Z
Pasadena
2
wikitext
text/x-wiki
[[Category:Authors]]
[[Category:Interactive Authors]]
{{Template:Author
|name=Pasadena
|image=
|aliases=upasadena<br />_pasadena
|reddit=[https://www.reddit.com/user/_pasadena /u/_pasadena]
|discord=Pasadena#9851
|youtube=[https://www.youtube.com/channel/UCtoO83Kj7St2rcD2ygtvlTw @_pasadena]
|github=https://github.com/upasadena
|email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com]
|website=https://upasadena.github.io/
|cyoa_index=https://upasadena.github.io/cyoas/
|other_social_media=
}}
Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s.
== CYOAs ==
=== Interactive ===
Pasadena has made the following Interactive CYOAs:
* [[Living God]] ([https://upasadena.github.io/cyoas/living-god/ link])
* [[Ultimate God]] ([https://upasadena.github.io/cyoas/ultimate-god/ link])
* [[Worm V3 Revised]] ([https://upasadena.github.io/cyoas/worm/v3/ link])
* [[JRPG Traitor]] ([https://upasadena.github.io/cyoas/jrpg-traitor/ link])
==== Incomplete/WIP ====
* [[Awakened God]] ([https://upasadena.github.io/cyoas/awakened-god/ link])
b8d595122958f08b82b270725f74afc42da89ebe
Category:Templates
14
15
34
2023-06-01T21:41:47Z
Pasadena
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
CYOA Wiki:Manual of Style
4
16
43
2023-06-01T22:08:31Z
Pasadena
2
Created page with "== Language == This wiki should follow [[w:Oxford spelling|]], which is essentially [[w:British English|]] with -ize (but NOT -yze) endings. == Date and time == === Timezone === The timezone used when writing dates and times should UTC+0."
wikitext
text/x-wiki
== Language ==
This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings.
== Date and time ==
=== Timezone ===
The timezone used when writing dates and times should UTC+0.
24f62673da72bc1dc15437f1e79098d600abf0ee
44
43
2023-06-01T22:09:24Z
Pasadena
2
wikitext
text/x-wiki
== Language ==
This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings.
The most important thing is being consistent, so if an article is written in another variety of English, continue to use that.
== Date and time ==
=== Timezone ===
The timezone used when writing dates and times should UTC+0.
044b2ad50e47e4ce4c77edc3a572d9024cb035ea
47
44
2023-06-01T22:14:33Z
Pasadena
2
wikitext
text/x-wiki
== Language ==
This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings.
The most important thing is being consistent, so if an article is written in another variety of English, continue to use that.
== Date and time ==
=== Timezone ===
The timezone used when writing dates and times should UTC+0.
=== Format ===
When writing in long form, write like '''20 July 1981'''.
When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''.
673bd2589304e83e0e635155d39b3bb5cb64c723
Template:CYOA
10
17
48
2023-06-01T22:15:56Z
Pasadena
2
Infobox created with infobox builder.
wikitext
text/x-wiki
<infobox><title source="cyoa_name"><default>{{PAGENAME}}</default></title><image source="image"/><data source="author"><label>Author</label></data><data source="authors"><label>Authors</label></data><data source="static_link"><label>Link</label></data><data source="static_links"><label>Links</label></data><data source="reddit_post"><label>Reddit post</label></data><data source="release_date"><label>Release date</label></data><title source="interactive_section"/><data source="int_author"><label>Interactive Author</label></data><data source="int_authors"><label>Interactive Authors</label></data><data source="int_link"><label>Link</label></data><data source="int_links"><label>Links</label></data><title source="more_title"/><data source="dlc"><label>DLC</label></data><data source="dlcs"><label>DLCs</label></data><data source="fork"><label>Fork</label></data><data source="forks"><label>Forks</label></data></infobox>
a95b19590e67da8e55ceb9c4714d8a6fd48f67e0
49
48
2023-06-01T22:16:38Z
Pasadena
2
wikitext
text/x-wiki
<infobox>
<title source="cyoa_name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="author">
<label>Author</label>
</data>
<data source="authors">
<label>Authors</label>
</data>
<data source="static_link">
<label>Link</label>
</data>
<data source="static_links">
<label>Links</label>
</data>
<data source="reddit_post">
<label>Reddit post</label>
</data>
<data source="release_date">
<label>Release date</label>
</data>
<title source="interactive_section" />
<data source="int_author">
<label>Interactive Author</label>
</data>
<data source="int_authors">
<label>Interactive Authors</label>
</data>
<data source="int_link">
<label>Link</label>
</data>
<data source="int_links">
<label>Links</label>
</data>
<title source="more_title" />
<data source="dlc">
<label>DLC</label>
</data>
<data source="dlcs">
<label>DLCs</label>
</data>
<data source="fork">
<label>Fork</label>
</data>
<data source="forks">
<label>Forks</label>
</data>
</infobox>
273c3dda5a8fd427743804b8b18b78f2103d40f1
50
49
2023-06-01T22:19:59Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
</noinclude>
<infobox>
<title source="cyoa_name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="author">
<label>Author</label>
</data>
<data source="authors">
<label>Authors</label>
</data>
<data source="static_link">
<label>Link</label>
</data>
<data source="static_links">
<label>Links</label>
</data>
<data source="post">
<label>Post</label>
</data>
<data source="release_date">
<label>Release date</label>
</data>
<title source="interactive_section" />
<data source="int_author">
<label>Interactive Author</label>
</data>
<data source="int_authors">
<label>Interactive Authors</label>
</data>
<data source="int_link">
<label>Link</label>
</data>
<data source="int_links">
<label>Links</label>
</data>
<title source="more_title" />
<data source="dlc">
<label>DLC</label>
</data>
<data source="dlcs">
<label>DLCs</label>
</data>
<data source="fork">
<label>Fork</label>
</data>
<data source="forks">
<label>Forks</label>
</data>
</infobox>
ceab543bda34aba1d86956c453b286a96c5ed76e
Living God CYOA
0
18
51
2023-06-01T22:23:40Z
Pasadena
2
Created page with "{{CYOA |title=Living God CYOA |image= |author=[[MythicLegendary]] |authors= |link= |links= |authors= |post= |release_date= |interactive_section=Interactive |int_author=[[Pasadena]] |int_link= |int_links=[https://upasadena.github.io/cyoas/living-god/ Github]<br>[https://pasadena.neocities.org/cyoas/living_god_120/ Neocities] |more_title= |dlc= |dlcs= |fork= |forks= }}"
wikitext
text/x-wiki
{{CYOA
|title=Living God CYOA
|image=
|author=[[MythicLegendary]]
|authors=
|link=
|links=
|authors=
|post=
|release_date=
|interactive_section=Interactive
|int_author=[[Pasadena]]
|int_link=
|int_links=[https://upasadena.github.io/cyoas/living-god/ Github]<br>[https://pasadena.neocities.org/cyoas/living_god_120/ Neocities]
|more_title=
|dlc=
|dlcs=
|fork=
|forks=
}}
51c9198b7e9bd78a19f56b9f00eab999eb9fab1d
Living God CYOA
0
18
52
51
2023-06-01T22:24:42Z
Pasadena
2
wikitext
text/x-wiki
{{CYOA
|title=Living God CYOA
|image=
|author=[[MythicLegendary]]
|authors=
|link=
|links=
|post=
|release_date=
|interactive_section=Interactive
|int_author=[[Pasadena]]
|int_link=
|int_links=[https://upasadena.github.io/cyoas/living-god/ Github]<br>[https://pasadena.neocities.org/cyoas/living_god_120/ Neocities]
|more_title=
|dlc=
|dlcs=
|fork=
|forks=
}}
b497147030d6833ddd1572f3fce819811a7b6a5b
59
52
2023-06-01T22:45:41Z
Pasadena
2
wikitext
text/x-wiki
[[Category:CYOAs]]
[[Category:Static CYOAs]]
[[Category:Interactive CYOAs]]
{{CYOA
|title=Living God CYOA
|image=
|author=[[MythicLegendary]]
|authors=
|link=
|links=
|post=
|interactive_section=Interactive
|int_author=[[Pasadena]]
|int_link=
|int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1]
|more_title=
|dlc=
|dlcs=
|fork=
|forks=
}}
The '''Living God CYOA''' is a CYOA created by author [[MythicLegendary]].
4ed495a3d7142d7c2c9039e1f31a7658bb54fd3c
62
59
2023-06-01T22:53:58Z
Pasadena
2
wikitext
text/x-wiki
[[Category:CYOAs]]
[[Category:Static CYOAs]]
[[Category:Interactive CYOAs]]
{{CYOA
|title=Living God CYOA
|image=
|author=[[MythicLegendary]]
|authors=
|link=
|links=
|post=
|interactive_section=Interactive
|int_author=[[Pasadena]]
|int_link=
|int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1]
|more_title=
|dlc=
|dlcs=
|fork=
|forks=
}}
The '''Living God CYOA''' is a [[CYOA]] created by author [[MythicLegendary]].
70d4019690e00b31aa84f5734afc9688dba4827f
64
62
2023-06-01T23:06:10Z
Pasadena
2
wikitext
text/x-wiki
[[Category:CYOAs]]
[[Category:Static CYOAs]]
[[Category:Interactive CYOAs]]
{{CYOA
|title=Living God CYOA
|image=
|author=[[MythicLegendary]]
|authors=
|link=
|links=[https://imgur.com/gallery/i49iAiT Amaranthea Update] (25 March 2020)<br>[https://imgur.com/a/ulNXLxx UPDATED] (15 August 2019)<br>[https://imgur.com/a/1io0mHG Hotfix] (24 July 2019)
|post=
|interactive_section=Interactive
|int_author=[[Pasadena]]
|int_link=
|int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1]
|more_title=
|dlc=
|dlcs=
|fork=
|forks=
}}
The '''Living God CYOA''' is a [[CYOA]] created by author [[MythicLegendary]].
9f1d577ed54acda83ed0d462436c6bfff57e4077
66
64
2023-06-01T23:07:34Z
Pasadena
2
wikitext
text/x-wiki
[[Category:CYOAs]]
[[Category:Static CYOAs]]
[[Category:Interactive CYOAs]]
{{CYOA
|title=Living God CYOA
|image=
|author=[[MythicLegendary]]
|authors=
|static_link=
|static_links=[https://imgur.com/gallery/i49iAiT Amaranthea Update] (25 March 2020)<br>[https://imgur.com/a/ulNXLxx UPDATED] (15 August 2019)<br>[https://imgur.com/a/1io0mHG Hotfix] (24 July 2019)
|post=
|interactive_section=Interactive
|int_author=[[Pasadena]]
|int_link=
|int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1]
|more_title=
|dlc=
|dlcs=
|fork=
|forks=
}}
The '''Living God CYOA''' is a [[CYOA]] created by author [[MythicLegendary]].
337a7ee0776f22746654bb68f48ba8200215f8b8
72
66
2023-06-01T23:20:38Z
Pasadena
2
Pasadena moved page [[Living God]] to [[Living God CYOA]]
wikitext
text/x-wiki
[[Category:CYOAs]]
[[Category:Static CYOAs]]
[[Category:Interactive CYOAs]]
{{CYOA
|title=Living God CYOA
|image=
|author=[[MythicLegendary]]
|authors=
|static_link=
|static_links=[https://imgur.com/gallery/i49iAiT Amaranthea Update] (25 March 2020)<br>[https://imgur.com/a/ulNXLxx UPDATED] (15 August 2019)<br>[https://imgur.com/a/1io0mHG Hotfix] (24 July 2019)
|post=
|interactive_section=Interactive
|int_author=[[Pasadena]]
|int_link=
|int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1]
|more_title=
|dlc=
|dlcs=
|fork=
|forks=
}}
The '''Living God CYOA''' is a [[CYOA]] created by author [[MythicLegendary]].
337a7ee0776f22746654bb68f48ba8200215f8b8
91
72
2023-06-03T02:18:30Z
Pasadena
2
wikitext
text/x-wiki
[[Category:CYOAs]]
[[Category:Static CYOAs]]
[[Category:Interactive CYOAs]]
{{CYOA
|title=Living God CYOA
|image=
|author=[[MythicLegendary]]
|authors=
|static_link=
|static_links=[https://imgur.com/gallery/i49iAiT Amaranthea Update] (25 March 2020)<br>[https://imgur.com/a/ulNXLxx UPDATED] (15 August 2019)<br>[https://imgur.com/a/1io0mHG Hotfix] (24 July 2019)
|post=
|interactive_section=Interactive
|int_author=[[Pasadena]]
|int_link=
|int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1]
|more_title=
|dlc=
|dlcs=
|fork=
|forks=
}}
The '''Living God CYOA''' is a [[CYOA]] created by author [[MythicLegendary]].
== See also ==
* [[:Category:Living God CYOA Lore|Living God CYOA Lore]]
5e79922ad9bd9d70a220fa3276a85719e0873bc8
99
91
2023-06-03T02:36:50Z
Pasadena
2
wikitext
text/x-wiki
[[Category:CYOAs]]
[[Category:Static CYOAs]]
[[Category:Interactive CYOAs]]
{{CYOA
|title=Living God CYOA
|image=
|author=[[MythicLegendary]]
|authors=
|static_link=
|static_links=[https://imgur.com/gallery/i49iAiT Amaranthea Update] (25 March 2020)<br>[https://imgur.com/a/ulNXLxx UPDATED] (15 August 2019)<br>[https://imgur.com/a/1io0mHG Hotfix] (24 July 2019)
|post=
|interactive_section=Interactive
|int_author=[[Pasadena]]
|int_link=
|int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1]
|more_title=
|dlc=
|dlcs=
|fork=
|forks=
}}
The '''Living God CYOA''' is a [[CYOA]] created by author [[MythicLegendary]].
== See also ==
* [[:Category:Living God CYOA Lore|Living God CYOA Lore]]
* [[:Category:Living God CYOA Characters|Living God CYOA Characters]]
1240b83e71cb3b9e4cce216acb10aa33cc9e4036
Template:CYOA
10
17
53
50
2023-06-01T22:27:36Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
== Template ==
<pre>
{{CYOA
|title=
|image=
|author=[[Author]]
|authors=[[Author1]], [[Author2]]
|link=
|links=
|post=
|release_date=
|interactive_section=Put 'Interactive' if there's an interactive version. Otherwise, leave empty.
|int_author=[[IntAuthor]]
|int_link=
|int_links=[https://test.github.io/cyoa/ Github]<br>[https://test.neocities.org/cyoa/ Neocities]
|more_title=Put 'More' if there's a fork or DLC. Otherwise, leave empty.
|dlc=
|dlcs=
|fork=
|forks=
}}
</pre>
</noinclude>
<infobox>
<title source="cyoa_name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="author">
<label>Author</label>
</data>
<data source="authors">
<label>Authors</label>
</data>
<data source="static_link">
<label>Link</label>
</data>
<data source="static_links">
<label>Links</label>
</data>
<data source="post">
<label>Post</label>
</data>
<data source="release_date">
<label>Release date</label>
</data>
<title source="interactive_section" />
<data source="int_author">
<label>Interactive Author</label>
</data>
<data source="int_authors">
<label>Interactive Authors</label>
</data>
<data source="int_link">
<label>Link</label>
</data>
<data source="int_links">
<label>Links</label>
</data>
<title source="more_title" />
<data source="dlc">
<label>DLC</label>
</data>
<data source="dlcs">
<label>DLCs</label>
</data>
<data source="fork">
<label>Fork</label>
</data>
<data source="forks">
<label>Forks</label>
</data>
</infobox>
00350c1cd7ae8d1e39f12a673333b2598ab12fd6
54
53
2023-06-01T22:28:09Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
[[Category:Templates]]
== Template ==
<pre>
{{CYOA
|title=
|image=
|author=[[Author]]
|authors=[[Author1]], [[Author2]]
|link=
|links=
|post=
|release_date=
|interactive_section=Put 'Interactive' if there's an interactive version. Otherwise, leave empty.
|int_author=[[IntAuthor]]
|int_link=
|int_links=[https://test.github.io/cyoa/ Github]<br>[https://test.neocities.org/cyoa/ Neocities]
|more_title=Put 'More' if there's a fork or DLC. Otherwise, leave empty.
|dlc=
|dlcs=
|fork=
|forks=
}}
</pre>
</noinclude>
<infobox>
<title source="cyoa_name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="author">
<label>Author</label>
</data>
<data source="authors">
<label>Authors</label>
</data>
<data source="static_link">
<label>Link</label>
</data>
<data source="static_links">
<label>Links</label>
</data>
<data source="post">
<label>Post</label>
</data>
<data source="release_date">
<label>Release date</label>
</data>
<title source="interactive_section" />
<data source="int_author">
<label>Interactive Author</label>
</data>
<data source="int_authors">
<label>Interactive Authors</label>
</data>
<data source="int_link">
<label>Link</label>
</data>
<data source="int_links">
<label>Links</label>
</data>
<title source="more_title" />
<data source="dlc">
<label>DLC</label>
</data>
<data source="dlcs">
<label>DLCs</label>
</data>
<data source="fork">
<label>Fork</label>
</data>
<data source="forks">
<label>Forks</label>
</data>
</infobox>
689ab81d5d206922ca4bab5aa29d0964aeb0fee3
55
54
2023-06-01T22:29:55Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
[[Category:Templates]]
== Template ==
<pre>
{{CYOA
|title=
|image=
|author=[[Author]]
|authors=[[Author1]], [[Author2]]
|link=
|links=
|post=
|release_date=
|interactive_section=Put 'Interactive' if there's an interactive version. Otherwise, leave empty.
|int_author=[[IntAuthor]]
|int_link=
|int_links=[https://test.github.io/cyoa/ Github]<br>[https://test.neocities.org/cyoa/ Neocities]
|more_title=Put 'More' if there's a fork or DLC. Otherwise, leave empty.
|dlc=
|dlcs=
|fork=
|forks=
}}
== Categories ==
Don't forget to add the applicable categories:
<pre>
[[Category:CYOAs]]
[[Category:Static CYOAs]]
[[Category:Interactive CYOAs]]
</pre>
</pre>
</noinclude>
<infobox>
<title source="cyoa_name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="author">
<label>Author</label>
</data>
<data source="authors">
<label>Authors</label>
</data>
<data source="static_link">
<label>Link</label>
</data>
<data source="static_links">
<label>Links</label>
</data>
<data source="post">
<label>Post</label>
</data>
<data source="release_date">
<label>Release date</label>
</data>
<title source="interactive_section" />
<data source="int_author">
<label>Interactive Author</label>
</data>
<data source="int_authors">
<label>Interactive Authors</label>
</data>
<data source="int_link">
<label>Link</label>
</data>
<data source="int_links">
<label>Links</label>
</data>
<title source="more_title" />
<data source="dlc">
<label>DLC</label>
</data>
<data source="dlcs">
<label>DLCs</label>
</data>
<data source="fork">
<label>Fork</label>
</data>
<data source="forks">
<label>Forks</label>
</data>
</infobox>
ba7d109d7b36e684e428b21b38e39daaed506756
56
55
2023-06-01T22:36:51Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
[[Category:Templates]]
== Template ==
<pre>
{{CYOA
|title=
|image=
|author=[[Author]]
|authors=[[Author1]], [[Author2]]
|link=
|links=Each link should be titled with the version name/number, and then the release date (if known) surrounded by parentheses.
|post=
|posts=
|interactive_section=Put 'Interactive' if there's an interactive version. Otherwise, leave empty.
|int_author=[[IntAuthor]]
|int_link=
|int_links=[https://test.github.io/cyoa/ Github]<br>[https://test.neocities.org/cyoa/ Neocities]
|more_title=Put 'More' if there's a fork or DLC. Otherwise, leave empty.
|dlc=
|dlcs=
|fork=
|forks=
}}
== Categories ==
Don't forget to add the applicable categories:
<pre>
[[Category:CYOAs]]
[[Category:Static CYOAs]]
[[Category:Interactive CYOAs]]
</pre>
</pre>
</noinclude>
<infobox>
<title source="cyoa_name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="author">
<label>Author</label>
</data>
<data source="authors">
<label>Authors</label>
</data>
<data source="static_link">
<label>Link</label>
</data>
<data source="static_links">
<label>Links</label>
</data>
<data source="post">
<label>Post</label>
</data>
<data source="posts">
<label>Posts</label>
</data>
<title source="interactive_section" />
<data source="int_author">
<label>Interactive Author</label>
</data>
<data source="int_authors">
<label>Interactive Authors</label>
</data>
<data source="int_link">
<label>Link</label>
</data>
<data source="int_links">
<label>Links</label>
</data>
<title source="more_title" />
<data source="dlc">
<label>DLC</label>
</data>
<data source="dlcs">
<label>DLCs</label>
</data>
<data source="fork">
<label>Fork</label>
</data>
<data source="forks">
<label>Forks</label>
</data>
</infobox>
43e7e3469102b47bc018126e2ff7b4569e8700ad
57
56
2023-06-01T22:37:19Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
[[Category:Templates]]
== Template ==
<pre>
{{CYOA
|title=
|image=
|author=[[Author]]
|authors=[[Author1]], [[Author2]]
|link=
|links=Each link should be titled with the version name/number, and then the release date (if known) surrounded by parentheses.
|post=
|posts=
|interactive_section=Put 'Interactive' if there's an interactive version. Otherwise, leave empty.
|int_author=[[IntAuthor]]
|int_link=
|int_links=[https://test.github.io/cyoa/ Github]<br>[https://test.neocities.org/cyoa/ Neocities]
|more_title=Put 'More' if there's a fork or DLC. Otherwise, leave empty.
|dlc=
|dlcs=
|fork=
|forks=
}}
</pre>
== Categories ==
Don't forget to add the applicable categories:
<pre>
[[Category:CYOAs]]
[[Category:Static CYOAs]]
[[Category:Interactive CYOAs]]
</noinclude>
<infobox>
<title source="cyoa_name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="author">
<label>Author</label>
</data>
<data source="authors">
<label>Authors</label>
</data>
<data source="static_link">
<label>Link</label>
</data>
<data source="static_links">
<label>Links</label>
</data>
<data source="post">
<label>Post</label>
</data>
<data source="posts">
<label>Posts</label>
</data>
<title source="interactive_section" />
<data source="int_author">
<label>Interactive Author</label>
</data>
<data source="int_authors">
<label>Interactive Authors</label>
</data>
<data source="int_link">
<label>Link</label>
</data>
<data source="int_links">
<label>Links</label>
</data>
<title source="more_title" />
<data source="dlc">
<label>DLC</label>
</data>
<data source="dlcs">
<label>DLCs</label>
</data>
<data source="fork">
<label>Fork</label>
</data>
<data source="forks">
<label>Forks</label>
</data>
</infobox>
1a4cf5e7e16fe7109dc561d3a6c24ad33eb0060e
58
57
2023-06-01T22:37:41Z
Pasadena
2
/* Categories */
wikitext
text/x-wiki
<noinclude>
[[Category:Templates]]
== Template ==
<pre>
{{CYOA
|title=
|image=
|author=[[Author]]
|authors=[[Author1]], [[Author2]]
|link=
|links=Each link should be titled with the version name/number, and then the release date (if known) surrounded by parentheses.
|post=
|posts=
|interactive_section=Put 'Interactive' if there's an interactive version. Otherwise, leave empty.
|int_author=[[IntAuthor]]
|int_link=
|int_links=[https://test.github.io/cyoa/ Github]<br>[https://test.neocities.org/cyoa/ Neocities]
|more_title=Put 'More' if there's a fork or DLC. Otherwise, leave empty.
|dlc=
|dlcs=
|fork=
|forks=
}}
</pre>
== Categories ==
Don't forget to add the applicable categories:
<pre>
[[Category:CYOAs]]
[[Category:Static CYOAs]]
[[Category:Interactive CYOAs]]
</pre>
</noinclude>
<infobox>
<title source="cyoa_name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="author">
<label>Author</label>
</data>
<data source="authors">
<label>Authors</label>
</data>
<data source="static_link">
<label>Link</label>
</data>
<data source="static_links">
<label>Links</label>
</data>
<data source="post">
<label>Post</label>
</data>
<data source="posts">
<label>Posts</label>
</data>
<title source="interactive_section" />
<data source="int_author">
<label>Interactive Author</label>
</data>
<data source="int_authors">
<label>Interactive Authors</label>
</data>
<data source="int_link">
<label>Link</label>
</data>
<data source="int_links">
<label>Links</label>
</data>
<title source="more_title" />
<data source="dlc">
<label>DLC</label>
</data>
<data source="dlcs">
<label>DLCs</label>
</data>
<data source="fork">
<label>Fork</label>
</data>
<data source="forks">
<label>Forks</label>
</data>
</infobox>
bf6cb4fbc57d418972111cc284fcb0be9659a7c9
65
58
2023-06-01T23:07:24Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
[[Category:Templates]]
== Template ==
<pre>
{{CYOA
|title=
|image=
|author=[[Author]]
|authors=[[Author1]], [[Author2]]
|static_link=
|static_links=Each link should be titled with the version name/number, and then the release date (if known) surrounded by parentheses.
|post=
|posts=
|interactive_section=Put 'Interactive' if there's an interactive version. Otherwise, leave empty.
|int_author=[[IntAuthor]]
|int_link=
|int_links=[https://test.github.io/cyoa/ Github]<br>[https://test.neocities.org/cyoa/ Neocities]
|more_title=Put 'More' if there's a fork or DLC. Otherwise, leave empty.
|dlc=
|dlcs=
|fork=
|forks=
}}
</pre>
== Categories ==
Don't forget to add the applicable categories:
<pre>
[[Category:CYOAs]]
[[Category:Static CYOAs]]
[[Category:Interactive CYOAs]]
</pre>
</noinclude>
<infobox>
<title source="cyoa_name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="author">
<label>Author</label>
</data>
<data source="authors">
<label>Authors</label>
</data>
<data source="static_link">
<label>Link</label>
</data>
<data source="static_links">
<label>Links</label>
</data>
<data source="post">
<label>Post</label>
</data>
<data source="posts">
<label>Posts</label>
</data>
<title source="interactive_section" />
<data source="int_author">
<label>Interactive Author</label>
</data>
<data source="int_authors">
<label>Interactive Authors</label>
</data>
<data source="int_link">
<label>Link</label>
</data>
<data source="int_links">
<label>Links</label>
</data>
<title source="more_title" />
<data source="dlc">
<label>DLC</label>
</data>
<data source="dlcs">
<label>DLCs</label>
</data>
<data source="fork">
<label>Fork</label>
</data>
<data source="forks">
<label>Forks</label>
</data>
</infobox>
686880ffab92324ac3252a2e8d134976686a5e55
Main Page
0
1
60
46
2023-06-01T22:50:03Z
Pasadena
2
/* Quick Start */
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** [[:Category:Static CYOAs|Static CYOAs]]
** [[:Category:Interactive CYOAs|Interactive CYOAs]]
** By category:
*** [[:Category:Fantasy CYOAs|Fantasy CYOAs]]
*** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc
*** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc
*** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc
*** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc
*** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]]
*** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* [[CYOA_Wiki:Manual of Style|Manual of Style]]
* [[:Category:Templates|Templates]]
* Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]]
8e812849b0b38dbc43c1682cc0f9f6be20cd669a
61
60
2023-06-01T22:51:56Z
Pasadena
2
/* Quick Start */
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** By medium:
*** [[:Category:Static CYOAs|Static CYOAs]]
*** [[:Category:Interactive CYOAs|Interactive CYOAs]]
** By category:
*** [[:Category:Fantasy CYOAs|Fantasy CYOAs]]
*** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc
*** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc
*** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc
*** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc
*** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]]
*** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* [[CYOA_Wiki:Manual of Style|Manual of Style]]
* [[:Category:Templates|Templates]]
* Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]]
17daad540f9d1df8338281052759acd30b10203b
75
61
2023-06-01T23:41:23Z
Pasadena
2
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** By medium:
*** [[:Category:Static CYOAs|Static CYOAs]]
*** [[:Category:Interactive CYOAs|Interactive CYOAs]]
** By category:
*** [[:Category:Fantasy CYOAs|Fantasy CYOAs]]
*** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc
*** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc
*** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc
*** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc
*** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]]
*** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
* [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources]
== Tutorials ==
=== Static ===
* [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide]
* [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info]
* [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials]
=== Interactive ===
* [[Interactive CYOA Tutorial]] (WIP)
* [https://imgur.com/a/QV36Ix8 Neocities Setup #1]
* [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* [[CYOA_Wiki:Manual of Style|Manual of Style]]
* [[:Category:Templates|Templates]]
* Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]]
f6c7815974026ab54563b85a7a7f6b986ce16b4c
76
75
2023-06-01T23:43:23Z
Pasadena
2
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** By medium:
*** [[:Category:Static CYOAs|Static CYOAs]]
*** [[:Category:Interactive CYOAs|Interactive CYOAs]]
** By category:
*** [[:Category:Fantasy CYOAs|Fantasy CYOAs]]
*** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc
*** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc
*** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc
*** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc
*** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]]
*** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
* [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources]
* [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs)
== Tutorials ==
=== Static ===
* [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide]
* [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info]
* [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials]
=== Interactive ===
* [[Interactive CYOA Tutorial]] (WIP)
* [https://imgur.com/a/QV36Ix8 Neocities Setup #1]
* [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* [[CYOA_Wiki:Manual of Style|Manual of Style]]
* [[:Category:Templates|Templates]]
* Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]]
f03cad6f5c179036ba328226dbcad00bcbcd0978
100
76
2023-06-03T02:37:39Z
Pasadena
2
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** By medium:
*** [[:Category:Static CYOAs|Static CYOAs]]
*** [[:Category:Interactive CYOAs|Interactive CYOAs]]
** By category:
*** [[:Category:Fantasy CYOAs|Fantasy CYOAs]]
*** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc
*** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc
*** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc
*** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc
*** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]]
*** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
* [[:Category:Lore|Lore]]
* [[:Category:Characters|Characters]]
* [[:Category:Locations|Locations]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
* [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources]
* [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs)
== Tutorials ==
=== Static ===
* [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide]
* [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info]
* [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials]
=== Interactive ===
* [[Interactive CYOA Tutorial]] (WIP)
* [https://imgur.com/a/QV36Ix8 Neocities Setup #1]
* [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* [[CYOA_Wiki:Manual of Style|Manual of Style]]
* [[:Category:Templates|Templates]]
* Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]]
d3aa32431e451ef3a8c1d51c2dc672f187ff9fdb
Author (Template)
0
19
63
2023-06-01T23:02:11Z
Pasadena
2
Created page with "[[Category:Templates]] This is a base template (not to be confused with wiki templates) for creating Author pages. Add or remove stuff at your leisure. <pre> [[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] {{Author |name= |image= |aliases= |reddit= |discord= |youtube= |github= |email=[mailto:example@gmail.com example@gmail.com] |website= |cyoa_index= |other_social_media= }} John Doe is an author who creates [[CYOA]]s. == CYOAs == ==..."
wikitext
text/x-wiki
[[Category:Templates]]
This is a base template (not to be confused with wiki templates) for creating Author pages. Add or remove stuff at your leisure.
<pre>
[[Category:Authors]]
[[Category:Static Authors]]
[[Category:Interactive Authors]]
{{Author
|name=
|image=
|aliases=
|reddit=
|discord=
|youtube=
|github=
|email=[mailto:example@gmail.com example@gmail.com]
|website=
|cyoa_index=
|other_social_media=
}}
John Doe is an author who creates [[CYOA]]s.
== CYOAs ==
=== Static ===
This author has made the following [[Static CYOA]]s:
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
=== Interactive ===
This author has made the following [[Interactive CYOA]]s:
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
==== Incomplete/WIP ====
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
</pre>
cf518828f4c939648cb63b6e5c4ce9a9f9694338
70
63
2023-06-01T23:13:41Z
Pasadena
2
wikitext
text/x-wiki
[[Category:Templates]]
This is a base template (not to be confused with wiki templates) for creating Author pages. Add or remove stuff at your leisure.
<pre>
[[Category:Authors]]
[[Category:Static Authors]]
[[Category:Interactive Authors]]
{{Author
|name=
|image=
|aliases=
|social_media='Social Media' if there is any social media, otherwise leave it empty
|reddit=
|discord=
|youtube=
|imgur=
|github=
|email=[mailto:example@gmail.com example@gmail.com]
|website=
|cyoa_index=
|other_social_media=
}}
John Doe is an author who creates [[CYOA]]s.
== CYOAs ==
=== Static ===
This author has made the following [[Static CYOA]]s:
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
=== Interactive ===
This author has made the following [[Interactive CYOA]]s:
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
==== Incomplete/WIP ====
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
</pre>
f684f409a599b32c9ff2752a08d5dee733534011
MythicLegendary
0
20
67
2023-06-01T23:11:02Z
Pasadena
2
Created page with "[[Category:Authors]] [[Category:Static Authors]] [[Category:Interactive Authors]] {{Author |name=MythicLegendary |image= |aliases=PowerCreator, PowerCreatorAnon |reddit=[https://www.reddit.com/user/MythicLegendary u/MythicLegendary] |discord= |youtube= |github= |email=[mailto:example@gmail.com example@gmail.com] |website= |cyoa_index= |other_social_media= }} MythicLegendary is an author who creates [[CYOA]]s. == CYOAs == === Static === MythicLegendary has made the fol..."
wikitext
text/x-wiki
[[Category:Authors]]
[[Category:Static Authors]]
[[Category:Interactive Authors]]
{{Author
|name=MythicLegendary
|image=
|aliases=PowerCreator, PowerCreatorAnon
|reddit=[https://www.reddit.com/user/MythicLegendary u/MythicLegendary]
|discord=
|youtube=
|github=
|email=[mailto:example@gmail.com example@gmail.com]
|website=
|cyoa_index=
|other_social_media=
}}
MythicLegendary is an author who creates [[CYOA]]s.
== CYOAs ==
=== Static ===
MythicLegendary has made the following [[Static CYOA]]s:
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
==== Incomplete/WIP ====
MythicLegendary is rumoured to be working on the following:
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
5a179d8fcd2ec78404aad9ac73794a0ab7086f0d
71
67
2023-06-01T23:20:17Z
Pasadena
2
wikitext
text/x-wiki
[[Category:Authors]]
[[Category:Static Authors]]
[[Category:Interactive Authors]]
{{Author
|name=MythicLegendary
|image=
|aliases=PowerCreator, PowerCreatorAnon
|reddit=[https://www.reddit.com/user/MythicLegendary u/MythicLegendary]
|discord=
|youtube=
|github=
|email=
|website=
|cyoa_index=
|other_social_media=
}}
MythicLegendary is an author who creates [[CYOA]]s.
== CYOAs ==
=== Static ===
MythicLegendary has made the following [[Static CYOA]]s:
* [[Forced Basement Vacation CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FForced%20Basement%20Vacation%20CYOA link])
* [[Living God CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FLiving%20God%20CYOA link])
* [[Power Creator#New Pantheon|Power Creator - New Pantheon CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FPower%20Creator%20-%20New%20Pantheon%20CYOA link])
* [[Power Creator|Power Creator CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FPower%20Creator%20CYOA link])
* [[Power Creator#Xenon|Power Creator Xenon CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FPower%20Creator%20Xenon%20CYOA link])
* [[Power Creator#Waifu]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FPowerCreator%20Waifu%20CYOA link])
* [[Urban Phantom CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FUrban%20Phantom%20CYOA link])
* [[Essentials Meta CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?dir=undefined&path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs&openfile=8832 link])
* [[Metachain CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?dir=undefined&path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs&openfile=8828 link])
==== Incomplete/WIP ====
MythicLegendary is rumoured to be working on the following:
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
8d88af4a66707dd4b4b2de57bb5eec8e6c9807ca
Template:Author
10
13
68
41
2023-06-01T23:11:41Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
[[Category:Templates]]
== Template code ==
Note that all of these are optional, and may be added at your leisure.
<pre>
{{Author
|name=
|image=
|aliases=
|reddit=
|discord=
|youtube=
|imgur=
|github=
|email=[mailto:example@gmail.com example@gmail.com]
|website=
|cyoa_index=
|other_social_media=
}}
</pre>
== Category ==
Don't forget to add the applicable categories to the author's page.
<pre>
[[Category:Authors]]
[[Category:Static Authors]]
[[Category:Interactive Authors]]
</pre>
</noinclude>
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="aliases">
<label>Aliases</label>
</data>
<title source="social_media">
<default>Social Media</default>
</title>
<data source="reddit">
<label>Reddit</label>
</data>
<data source="discord">
<label>Discord</label>
</data>
<data source="youtube">
<label>YouTube</label>
</data>
<data source="imgur">
<label>Imgur</label>
</data>
<data source="github">
<label>Github</label>
</data>
<data source="email">
<label>Email</label>
</data>
<data source="website">
<label>Website</label>
</data>
<data source="cyoa_index">
<label>CYOA Index</label>
</data>
<data source="other_social_media">
<label>Other</label>
</data>
</infobox>
0c15bde2bf24d7cabf8ef9c40e03c14dbacd2a7b
69
68
2023-06-01T23:13:16Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
[[Category:Templates]]
== Template code ==
Note that all of these are optional, and may be added at your leisure.
<pre>
{{Author
|name=
|image=
|aliases=
|social_media='Social Media' if there is any social media, otherwise leave it empty
|reddit=
|discord=
|youtube=
|imgur=
|github=
|email=[mailto:example@gmail.com example@gmail.com]
|website=
|cyoa_index=
|other_social_media=
}}
</pre>
== Category ==
Don't forget to add the applicable categories to the author's page.
<pre>
[[Category:Authors]]
[[Category:Static Authors]]
[[Category:Interactive Authors]]
</pre>
</noinclude>
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<data source="aliases">
<label>Aliases</label>
</data>
<title source="social_media" />
<data source="reddit">
<label>Reddit</label>
</data>
<data source="discord">
<label>Discord</label>
</data>
<data source="youtube">
<label>YouTube</label>
</data>
<data source="imgur">
<label>Imgur</label>
</data>
<data source="github">
<label>Github</label>
</data>
<data source="email">
<label>Email</label>
</data>
<data source="website">
<label>Website</label>
</data>
<data source="cyoa_index">
<label>CYOA Index</label>
</data>
<data source="other_social_media">
<label>Other</label>
</data>
</infobox>
f67a82637b97d3000bdb2ad352f24c50be3f4ce4
Living God
0
21
73
2023-06-01T23:20:38Z
Pasadena
2
Pasadena moved page [[Living God]] to [[Living God CYOA]]
wikitext
text/x-wiki
#REDIRECT [[Living God CYOA]]
5c3b77357039744277877f4c4211629cf816b009
Pasadena
0
14
74
38
2023-06-01T23:34:03Z
Pasadena
2
wikitext
text/x-wiki
[[Category:Authors]]
[[Category:Interactive Authors]]
{{Template:Author
|name=Pasadena
|image=
|aliases=upasadena<br />_pasadena
|reddit=[https://www.reddit.com/user/_pasadena /u/_pasadena]
|discord=Pasadena#9851
|youtube=[https://www.youtube.com/channel/UCtoO83Kj7St2rcD2ygtvlTw @_pasadena]
|github=https://github.com/upasadena
|email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com]
|website=https://upasadena.github.io/
|cyoa_index=https://upasadena.github.io/cyoas/
|other_social_media=
}}
Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s.
== CYOAs ==
=== Interactive ===
Pasadena has made the following Interactive CYOAs:
* [[Living God CYOA]] ([https://upasadena.github.io/cyoas/living-god/ link])
* [[Ultimate God CYOA]] ([https://upasadena.github.io/cyoas/ultimate-god/ link])
* [[Worm V3 Revised CYOA]] ([https://upasadena.github.io/cyoas/worm/v3/ link])
* [[JRPG Traitor CYOA]] ([https://upasadena.github.io/cyoas/jrpg-traitor/ link])
==== Incomplete/WIP ====
* [[Awakened God CYOA]] ([https://upasadena.github.io/cyoas/awakened-god/ link])
4982b5556268737d09638d561e43ca86b9da848c
Interactive CYOA Tutorial
0
22
77
2023-06-01T23:51:01Z
Pasadena
2
Created page with "== Basics == === Rows === === Choices === === IDs & Requirements === === Points & Scores === === Images === === Backpack & Choice Import === === Changing Defaults === === Uploading Your Project === == Advanced Mechanics == === Addons === === Copying === === Words === === Buttons & Variables === === Groups === == Styling == === Important Advice === === Style Templates === === Colour Palettes === === Backgrounds === === Text === === Filters === == Extending your CYOA == ==..."
wikitext
text/x-wiki
== Basics ==
=== Rows ===
=== Choices ===
=== IDs & Requirements ===
=== Points & Scores ===
=== Images ===
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Custom HTML and CSS ===
=== Custom Javascript ===
fe601d5545126da38cf3ff28ffe1e642c7591f76
78
77
2023-06-01T23:57:09Z
Pasadena
2
wikitext
text/x-wiki
== Basics ==
=== Rows ===
==== Creating Rows====
==== Cloning and Deleting Rows ====
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
=== IDs & Requirements ===
=== Points & Scores ===
=== Images ===
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Custom HTML and CSS ===
=== Custom Javascript ===
dfbd12d4ea81811cda62ce8ec3dc36fcd71a1648
79
78
2023-06-02T00:02:18Z
Pasadena
2
wikitext
text/x-wiki
== Basics ==
=== Rows ===
==== Creating Rows====
==== Cloning and Deleting Rows ====
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
=== Points & Scores ===
=== Images ===
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Custom HTML and CSS ===
=== Custom Javascript ===
f18576309fa94cfc7ddef5c5a326799f1cd0d154
80
79
2023-06-02T00:15:12Z
Pasadena
2
wikitext
text/x-wiki
== Basics ==
=== Rows ===
==== Creating Rows====
==== Cloning and Deleting Rows ====
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Custom HTML and CSS ===
=== Custom Javascript ===
5d6f72455c28a9922c827a562043de6cfedcf1d5
81
80
2023-06-02T00:20:56Z
Pasadena
2
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs created with [[Interactive CYOA Creator]]
==== Creating Rows====
==== Cloning and Deleting Rows ====
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Custom HTML and CSS ===
=== Custom Javascript ===
7535160183ddb6cf30a7585c77870bc371a037e5
82
81
2023-06-02T00:25:44Z
Pasadena
2
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, it is only attached to a row where choices can exist.
==== Creating Rows====
==== Cloning and Deleting Rows ====
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Custom HTML and CSS ===
=== Custom Javascript ===
ca8f68759f0d9e8275d116ad46e3ec0c1feb9642
83
82
2023-06-02T00:39:57Z
Pasadena
2
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, it is only attached to a row where choices can exist.
==== Creating Rows====
==== Cloning and Deleting Rows ====
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
e0842e9cfd0b33a6d5f5f3a3c8a345e1fec37c21
CYOA Wiki:Manual of Style
4
16
84
47
2023-06-02T04:03:59Z
Pasadena
2
wikitext
text/x-wiki
== Language ==
This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings.
The most important thing is being consistent, so if an article is written in another variety of English, continue to use that.
== Articles/Pages ==
=== Titles ===
CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not.
=== Interactive Articles ===
CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. Otherwise a standalone static or interactive should be fine to have its own page.
== Date and time ==
=== Timezone ===
The timezone used when writing dates and times should UTC+0.
=== Format ===
When writing in long form, write like '''20 July 1981'''.
When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''.
98f0696ced97e537cb7494fe7b6d4e42662b1b5e
Megaworld
0
24
86
2023-06-03T02:12:57Z
Pasadena
2
Created page with "A '''Megaworld''' is a type of planet in the [[Living God CYOA]]. == Description == A Megaworld is a monolithic artificial planet designed to house small percentages of [[The Verse|the Verse]] in capacity, serving as vast metropolises and hubs for trade, war, and industrial production, making use of terraforming and mystical constructs to create habitable environments, flora, fauna, and cityscapes in ideal locations where important resources are abundantly available. Mo..."
wikitext
text/x-wiki
A '''Megaworld''' is a type of planet in the [[Living God CYOA]].
== Description ==
A Megaworld is a monolithic artificial planet designed to house small percentages of [[The Verse|the Verse]] in capacity, serving as vast metropolises and hubs for trade, war, and industrial production, making use of terraforming and mystical constructs to create habitable environments, flora, fauna, and cityscapes in ideal locations where important resources are abundantly available. Most of the prominent empires within the Verse typically have one serving as their capital, with the most affluent among them barring up to five.
They are capable initially of supporting absurd numbers of citizens, but can be expanded freely as the population grows. Each one is assured to be a utopia, supernal paradise, perfect for housing a ruler's personal palaces and citadels, more beautiful than any world before, a veritable heaven on earth. Not only this, but they are assured to produce vast wealth, trade, and commerce, which a ruler may freely profit from through taxation and tariffs or statutory edicts to their preference. Any poverty, turmoil, or other problems that arise can be easily dealt with or will outright fix themselves promptly, unless you should wilfully exacerbate them. You are also granted the capacity to lead and rule over these worlds fully, efficiently, and without any discrepancy.
897d66317fb0991a677acd95f63681d4de4b2fd5
87
86
2023-06-03T02:15:33Z
Pasadena
2
wikitext
text/x-wiki
A '''Megaworld''' is a type of planet in the [[Living God CYOA]].
== Description ==
A Megaworld is a monolithic artificial planet designed to house small percentages of [[The Verse|the Verse]] in capacity, serving as vast metropolises and hubs for trade, war, and industrial production, making use of terraforming and mystical constructs to create habitable environments, flora, fauna, and cityscapes in ideal locations where important resources are abundantly available. Most of the prominent empires within the Verse typically have one serving as their capital, with the most affluent among them barring up to five.
They are capable initially of supporting absurd numbers of citizens, but can be expanded freely as the population grows. Each one is assured to be a utopia, supernal paradise, perfect for housing a ruler's personal palaces and citadels, more beautiful than any world before, a veritable heaven on earth. Not only this, but they are assured to produce vast wealth, trade, and commerce, which a ruler may freely profit from through taxation and tariffs or statutory edicts to their preference. Any poverty, turmoil, or other problems that arise can be easily dealt with or will outright fix themselves promptly, unless a ruler should wilfully exacerbate them.
b0b07259132b37d05ddbd7af393e7cc1b5aac24d
88
87
2023-06-03T02:16:48Z
Pasadena
2
wikitext
text/x-wiki
[[Category:Lore]]
[[Category:Living God CYOA Lore]]
A '''Megaworld''' is a type of planet in the [[Living God CYOA]].
== Description ==
A Megaworld is a monolithic artificial planet designed to house small percentages of [[The Verse|the Verse]] in capacity, serving as vast metropolises and hubs for trade, war, and industrial production, making use of terraforming and mystical constructs to create habitable environments, flora, fauna, and cityscapes in ideal locations where important resources are abundantly available. Most of the prominent empires within the Verse typically have one serving as their capital, with the most affluent among them barring up to five.
They are capable initially of supporting absurd numbers of citizens, but can be expanded freely as the population grows. Each one is assured to be a utopia, supernal paradise, perfect for housing a ruler's personal palaces and citadels, more beautiful than any world before, a veritable heaven on earth. Not only this, but they are assured to produce vast wealth, trade, and commerce, which a ruler may freely profit from through taxation and tariffs or statutory edicts to their preference. Any poverty, turmoil, or other problems that arise can be easily dealt with or will outright fix themselves promptly, unless a ruler should wilfully exacerbate them.
54bee6929065167698d270b202f31e051f699519
93
88
2023-06-03T02:29:39Z
Pasadena
2
wikitext
text/x-wiki
[[Category:Lore]]
[[Category:Living God CYOA Lore]]
A '''Megaworld''' is a type of planet in the [[Living God CYOA]].
== Description ==
A Megaworld is a monolithic artificial planet designed to house small percentages of [[The Verse|the Verse]] in capacity, serving as vast metropolises and hubs for trade, war, and industrial production, making use of terraforming and mystical constructs to create habitable environments, flora, fauna, and cityscapes in ideal locations where important resources are abundantly available.
They are capable initially of supporting absurd numbers of citizens, but can be expanded freely as the population grows. Each one is assured to be a utopia, supernal paradise, perfect for housing a ruler's personal palaces and citadels, more beautiful than any world before, a veritable heaven on earth.
They are assured to produce vast wealth, trade, and commerce, which a ruler may freely profit from through taxation and tariffs or statutory edicts to their preference. Any poverty, turmoil, or other problems that arise can be easily dealt with or will outright fix themselves promptly, unless a ruler should wilfully exacerbate them.
== Trivia ==
* Most of the prominent empires within the Verse typically have one serving as their capital, with the most affluent among them barring up to five.
bb8c4dfc8513bc9e7206250c73e7cbf70bfcbb0e
Category:Lore
14
25
89
2023-06-03T02:17:04Z
Pasadena
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Category:Living God CYOA Lore
14
26
90
2023-06-03T02:17:14Z
Pasadena
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Palace World
0
27
92
2023-06-03T02:28:26Z
Pasadena
2
Created page with "[[Category:Lore]] [[Category:Living God CYOA Lore]] A '''Palace World''' is a type of planet in the [[Living God CYOA]]. == Description == While [[Megaworld]]s are designed to house populations, trade, and commerce, a Palace World is purely a luxury item. A Palace World is an artificial planet designed to the exact specifications of the order down to the most minute detail, usually for an absurd price. This includes personal estates and any other amenities on the sur..."
wikitext
text/x-wiki
[[Category:Lore]]
[[Category:Living God CYOA Lore]]
A '''Palace World''' is a type of planet in the [[Living God CYOA]].
== Description ==
While [[Megaworld]]s are designed to house populations, trade, and commerce, a Palace World is purely a luxury item.
A Palace World is an artificial planet designed to the exact specifications of the order down to the most minute detail, usually for an absurd price. This includes personal estates and any other amenities on the surface, biologically customized flora, fauna, and populations, planetary temperatures and climate, atmospheric densities, and much more.
Entire races and species may be custom built from the ground up on your palace world, if a customer so desires. If they wish, their palace may extend from pole to pole of the world, spanning millions of miles or light years, depending on the size of their planet.
If expansions, alterations, or removals are required, these may be requested and promptly fulfilled by the megacorporation which provided them their Palace World if alterations cannot be made through other means.
A Palace World is a perfect place to use as a base of operations and leisure zone, fit with every imaginable comfort and pleasure, from beautiful silver hills to glowing flowers in the night.
325e2d84c47a644b5507ff5f45ebc5c6ec3a3550
Siren Artificial Intelligence
0
28
94
2023-06-03T02:34:21Z
Pasadena
2
Created page with "[[Category:Characters]] [[Category:Living God CYOA Characters]] The '''Siren Artificial Intelligence''' is an artificial intelligence for sale in the [[Living God CYOA]]. == Description == The Siren Artificial Intelligence is a vastly powerful AI system designed to be a personalized manager for both mystical and technological systems, capable of vast calculations and lightning speeds. It is installed via a meta-agent directly, meaning that it may be accessed for comm..."
wikitext
text/x-wiki
[[Category:Characters]]
[[Category:Living God CYOA Characters]]
The '''Siren Artificial Intelligence''' is an artificial intelligence for sale in the [[Living God CYOA]].
== Description ==
The Siren Artificial Intelligence is a vastly powerful AI system designed to be a personalized manager for both mystical and technological systems, capable of vast calculations and lightning speeds.
It is installed via a meta-agent directly, meaning that it may be accessed for communications, conversation, information, or other utilities directly in a customer's head without the need for any physical components like microchips or otherwise.
The Siren AI is intensely loyal, and comes with a customizable personality, appearance, and so on. If the customer so desires, it is possible through technological or mystical means to grant the Siren AI a physical body, whether through robotics, biochemistry, or otherwise.
It can fly ships, fire weapons with atomic accuracy, operate research facilities, map out the entire cosmos, and connect to interversal communication hubs, planetary internets, and other mediums across any distance.
It is a perfect utility and companion, in common use among the exceedingly wealthy and powerful.
19315478862003a1322c1e89f7dba674095c80ed
95
94
2023-06-03T02:35:27Z
Pasadena
2
wikitext
text/x-wiki
[[Category:Characters]]
[[Category:Living God CYOA Characters]]
The '''Siren Artificial Intelligence''' is an artificial intelligence for sale in the [[Living God CYOA]].
== Description ==
The Siren Artificial Intelligence is a vastly powerful AI system designed to be a personalized manager for both mystical and technological systems, capable of vast calculations and lightning speeds.
It is installed via a meta-agent directly, meaning that it may be accessed for communications, conversation, information, or other utilities directly in a customer's head without the need for any physical components like microchips or otherwise.
The Siren AI is intensely loyal, and comes with a customizable personality, appearance, and so on. If the customer so desires, it is possible through technological or mystical means to grant the Siren AI a physical body, whether through robotics, biochemistry, or otherwise.
It can fly ships, fire weapons with atomic accuracy, operate research facilities, map out the entire cosmos, and connect to interversal communication hubs, planetary internets, and other mediums across any distance.
It is a perfect utility and companion, in common use among the exceedingly wealthy and powerful.
== Trivia ==
* A Siren AI is available as a Subordinate in the Living God CYOA
26ef1f2988cdf8af509e96c234dba185b4e6f90d
96
95
2023-06-03T02:35:51Z
Pasadena
2
wikitext
text/x-wiki
[[Category:Lore]]
[[Category:Living God CYOA Lore]]
[[Category:Characters]]
[[Category:Living God CYOA Characters]]
The '''Siren Artificial Intelligence''' is an artificial intelligence for sale in the [[Living God CYOA]].
== Description ==
The Siren Artificial Intelligence is a vastly powerful AI system designed to be a personalized manager for both mystical and technological systems, capable of vast calculations and lightning speeds.
It is installed via a meta-agent directly, meaning that it may be accessed for communications, conversation, information, or other utilities directly in a customer's head without the need for any physical components like microchips or otherwise.
The Siren AI is intensely loyal, and comes with a customizable personality, appearance, and so on. If the customer so desires, it is possible through technological or mystical means to grant the Siren AI a physical body, whether through robotics, biochemistry, or otherwise.
It can fly ships, fire weapons with atomic accuracy, operate research facilities, map out the entire cosmos, and connect to interversal communication hubs, planetary internets, and other mediums across any distance.
It is a perfect utility and companion, in common use among the exceedingly wealthy and powerful.
== Trivia ==
* A Siren AI is available as a Subordinate in the Living God CYOA
6aa7354daf734d5c67e4252cce7dc8b750cfc8e2
Category:Characters
14
29
97
2023-06-03T02:36:08Z
Pasadena
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Category:Living God CYOA Characters
14
30
98
2023-06-03T02:36:17Z
Pasadena
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Category:Godlike CYOAs
14
31
101
2023-06-03T02:38:06Z
Pasadena
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Category:Science Fiction CYOAs
14
32
102
2023-06-03T02:38:29Z
Pasadena
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Living God CYOA
0
18
103
99
2023-06-03T02:38:32Z
Pasadena
2
wikitext
text/x-wiki
[[Category:CYOAs]]
[[Category:Static CYOAs]]
[[Category:Interactive CYOAs]]
[[Category:Godlike CYOAs]]
[[Category:Science Fantasy CYOAs]]
{{CYOA
|title=Living God CYOA
|image=
|author=[[MythicLegendary]]
|authors=
|static_link=
|static_links=[https://imgur.com/gallery/i49iAiT Amaranthea Update] (25 March 2020)<br>[https://imgur.com/a/ulNXLxx UPDATED] (15 August 2019)<br>[https://imgur.com/a/1io0mHG Hotfix] (24 July 2019)
|post=
|interactive_section=Interactive
|int_author=[[Pasadena]]
|int_link=
|int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1]
|more_title=
|dlc=
|dlcs=
|fork=
|forks=
}}
The '''Living God CYOA''' is a [[CYOA]] created by author [[MythicLegendary]].
== See also ==
* [[:Category:Living God CYOA Lore|Living God CYOA Lore]]
* [[:Category:Living God CYOA Characters|Living God CYOA Characters]]
0ae45d93271ff27c50e71d4ad681beffba781248
104
103
2023-06-03T02:38:54Z
Pasadena
2
wikitext
text/x-wiki
[[Category:CYOAs]]
[[Category:Static CYOAs]]
[[Category:Interactive CYOAs]]
[[Category:Godlike CYOAs]]
[[Category:Science Fiction CYOAs]]
{{CYOA
|title=Living God CYOA
|image=
|author=[[MythicLegendary]]
|authors=
|static_link=
|static_links=[https://imgur.com/gallery/i49iAiT Amaranthea Update] (25 March 2020)<br>[https://imgur.com/a/ulNXLxx UPDATED] (15 August 2019)<br>[https://imgur.com/a/1io0mHG Hotfix] (24 July 2019)
|post=
|interactive_section=Interactive
|int_author=[[Pasadena]]
|int_link=
|int_links=[https://upasadena.github.io/cyoas/living-god/ v1.2]<br>[https://pasadena.neocities.org/cyoas/living_god_110/ v1.1]<br>[https://pasadena.neocities.org/cyoas/living_god_100/ v1.1]
|more_title=
|dlc=
|dlcs=
|fork=
|forks=
}}
The '''Living God CYOA''' is a [[CYOA]] created by author [[MythicLegendary]].
== See also ==
* [[:Category:Living God CYOA Lore|Living God CYOA Lore]]
* [[:Category:Living God CYOA Characters|Living God CYOA Characters]]
b8f8b9ed54bb5f3490ecc47d612ddf08e9025fae
Category:Locations
14
33
105
2023-06-03T02:39:54Z
Pasadena
2
Created blank page
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Main Page
0
1
106
100
2023-06-03T02:42:17Z
Pasadena
2
/* Contributing */
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** By medium:
*** [[:Category:Static CYOAs|Static CYOAs]]
*** [[:Category:Interactive CYOAs|Interactive CYOAs]]
** By category:
*** [[:Category:Fantasy CYOAs|Fantasy CYOAs]]
*** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc
*** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc
*** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc
*** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc
*** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]]
*** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
* [[:Category:Lore|Lore]]
* [[:Category:Characters|Characters]]
* [[:Category:Locations|Locations]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
* [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources]
* [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs)
== Tutorials ==
=== Static ===
* [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide]
* [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info]
* [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials]
=== Interactive ===
* [[Interactive CYOA Tutorial]] (WIP)
* [https://imgur.com/a/QV36Ix8 Neocities Setup #1]
* [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* [[CYOA_Wiki:Manual of Style|Manual of Style]]
* [[:Category:Templates|Templates]]
* [[Special:Categories|Categories]]
* Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]]
678d32e474f5cb4191707cac3bfd5242e67c6165
124
106
2023-06-09T23:25:07Z
Pasadena
2
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** By medium:
*** [[:Category:Static CYOAs|Static CYOAs]]
*** [[:Category:Interactive CYOAs|Interactive CYOAs]]
** By category:
*** [[:Category:Fantasy CYOAs|Fantasy CYOAs]]
*** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc
*** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc
*** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc
*** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc
*** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]]
*** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
* [[:Category:Lore|Lore]]
* [[:Category:Characters|Characters]]
* [[:Category:Locations|Locations]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
* [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources]
* [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs)
== Tutorials ==
=== Static ===
* [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide]
* [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info]
* [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials]
=== Interactive ===
* [[Interactive CYOA Tutorial]] (WIP)
* [https://imgur.com/a/QV36Ix8 Neocities Setup #1]
* [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* [[CYOA_Wiki:Manual of Style|Manual of Style]]
* [[:Category:Templates|Templates]]
* [[Special:Categories|Categories]]
* Upload images at [[Special:Upload]]
* Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]]
dffeb31dd381224ba73d970f6756c7c45b10a2db
133
124
2023-06-09T23:50:38Z
Pasadena
2
/* Contributing */
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** By medium:
*** [[:Category:Static CYOAs|Static CYOAs]]
*** [[:Category:Interactive CYOAs|Interactive CYOAs]]
** By category:
*** [[:Category:Fantasy CYOAs|Fantasy CYOAs]]
*** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc
*** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc
*** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc
*** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc
*** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]]
*** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
* [[:Category:Lore|Lore]]
* [[:Category:Characters|Characters]]
* [[:Category:Locations|Locations]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
* [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources]
* [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs)
== Tutorials ==
=== Static ===
* [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide]
* [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info]
* [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials]
=== Interactive ===
* [[Interactive CYOA Tutorial]] (WIP)
* [https://imgur.com/a/QV36Ix8 Neocities Setup #1]
* [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* [[CYOA_Wiki:Manual of Style|Manual of Style]]
* [[CYOA_Wiki:Editing|Editing]] for wiki-specific editing tips
* [[:Category:Templates|Templates]]
* [[Special:Categories|Categories]]
* Upload images at [[Special:Upload]]
* Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]]
f7d8eb0d1361f91482c3e8f2fc7ddefa764d7e0f
137
133
2023-06-09T23:53:54Z
Pasadena
2
/* Contributing */
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** By medium:
*** [[:Category:Static CYOAs|Static CYOAs]]
*** [[:Category:Interactive CYOAs|Interactive CYOAs]]
** By category:
*** [[:Category:Fantasy CYOAs|Fantasy CYOAs]]
*** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc
*** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc
*** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc
*** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc
*** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]]
*** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
* [[:Category:Lore|Lore]]
* [[:Category:Characters|Characters]]
* [[:Category:Locations|Locations]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
* [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources]
* [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs)
== Tutorials ==
=== Static ===
* [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide]
* [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info]
* [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials]
=== Interactive ===
* [[Interactive CYOA Tutorial]] (WIP)
* [https://imgur.com/a/QV36Ix8 Neocities Setup #1]
* [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* [[CYOA_Wiki:Manual of Style|Manual of Style]]
* [[CYOA_Wiki:Editing|Editing]] for wiki-specific editing tips
* [[:Category:Templates|Templates]] and [[:Special:UncategorizedTemplates|Uncategorized Templates]]
* [[Special:Categories|Categories]]
* Upload images at [[Special:Upload]]
* Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]]
a5992a8f0078b1db3e45d4d5d3d9c743e033ff83
The Emissary
0
34
107
2023-06-03T02:48:22Z
Pasadena
2
Created page with "[[Category:Characters]] [[Category:Living God CYOA Characters]] '''The Emissary''' is a potential Subordinate for the player in the [[Living God CYOA]]. == CYOA Description == Political, economic, and interpersonal matters are obviously below you. Your focus should be on your own personal goals, not petty political disputes between empires or the inflation rates on distant, irrelevant worlds. The Emissary serves to alleviate all of these concerns to free up your time..."
wikitext
text/x-wiki
[[Category:Characters]]
[[Category:Living God CYOA Characters]]
'''The Emissary''' is a potential Subordinate for the player in the [[Living God CYOA]].
== CYOA Description ==
Political, economic, and interpersonal matters are obviously below you. Your focus should be on your own personal goals, not petty political disputes between empires or the inflation rates on distant, irrelevant worlds. The Emissary serves to alleviate all of these concerns to free up your time and energy as much as possible.
They will serve as a representative for your interest in all of these cases and more, cool-headed and diplomatic. They are exceedingly skilled at these tasks and are capable of completing them efficiently and flawlessly in your favour. Watch mountains of busywork and errands melt effortlessly beneath their efforts, gliding through the governance of countless worlds in minutes or the acquisition of custom-made luxury items in less time.
The Emissary is incapable of betraying you or pursuing interests other than yours.
The Emissary’s only personal abilities are relative immortality and the ability to discern and follow your will preternaturally, as to best serve your interests the cosmos over. In essence, any task not requiring your phenomenal cosmic powers to complete may be completed by The Emissary in your place. They will faithfully serve as an informant and representative in all matters you do not wish to deal with personally. Of course, you may come in person to any of these matters for effect or as a display of intimidation, but you will never need to if you don’t want to.
This individual will arrive on a custom-ordered basis according to your specifications, whether in appearance, disposition, alien species, gender, or otherwise.
f1eb7217ac5fbc3caee7e0fec842e0dc62711ac6
116
107
2023-06-03T03:28:57Z
Pasadena
2
wikitext
text/x-wiki
[[Category:Characters]]
[[Category:Living God CYOA Characters]]
'''The Emissary''' is a potential Subordinate for the player in the [[Living God CYOA]].
{{Character
image=[[The Emissary.jpg]]
biographical_information_section=Biographical information
alias=
aliases=
nickname=
nicknames=
epithet=
epithets=
title=
titles=
nationality=
ethnicity=
clan=
clans=
house=
houses=
family=
status=
age=
born=
died=
blood_type=
birthplace=
physical_description_section=Physical description
hair_colour=Black (default)
eye_colour=Black (default)
skin_colour=White (default)
height=
weight=
personal_information_section=Personal information
gender=Male (default)
love_interest=
love_interests=
spouse=
spouses=
allies=
enemies=
weapon_of_choice=
fighting_styles=
political_information_section=Political information
occupation=Representative<br>Diplomat<br>Emissary<br>Bureaucrat<br>Governor
position=
predecessor=
successor=
affiliation=[[The Player]]
team=
teams=
}}
== CYOA Description ==
Political, economic, and interpersonal matters are obviously below you. Your focus should be on your own personal goals, not petty political disputes between empires or the inflation rates on distant, irrelevant worlds. The Emissary serves to alleviate all of these concerns to free up your time and energy as much as possible.
They will serve as a representative for your interest in all of these cases and more, cool-headed and diplomatic. They are exceedingly skilled at these tasks and are capable of completing them efficiently and flawlessly in your favour. Watch mountains of busywork and errands melt effortlessly beneath their efforts, gliding through the governance of countless worlds in minutes or the acquisition of custom-made luxury items in less time.
The Emissary is incapable of betraying you or pursuing interests other than yours.
The Emissary’s only personal abilities are relative immortality and the ability to discern and follow your will preternaturally, as to best serve your interests the cosmos over. In essence, any task not requiring your phenomenal cosmic powers to complete may be completed by The Emissary in your place. They will faithfully serve as an informant and representative in all matters you do not wish to deal with personally. Of course, you may come in person to any of these matters for effect or as a display of intimidation, but you will never need to if you don’t want to.
This individual will arrive on a custom-ordered basis according to your specifications, whether in appearance, disposition, alien species, gender, or otherwise.
c33a776fdfdb8933350d3dbe0cbeaeded92c0c9b
120
116
2023-06-03T03:33:40Z
Pasadena
2
wikitext
text/x-wiki
[[Category:Characters]]
[[Category:Living God CYOA Characters]]
'''The Emissary''' is a potential Subordinate for the player in the [[Living God CYOA]].
{{Character
|image=[[File:The Emissary.jpg]]
|biographical_information_section=Biographical information
|physical_description_section=Physical description
|hair_colour=Black (default)
|eye_colour=Black (default)
|skin_colour=White (default)
|personal_information_section=Personal information
|gender=Male (default)
|allies=[[The Player]]
|political_information_section=Political information
|occupation=Representative<br>Diplomat<br>Emissary<br>Bureaucrat<br>Governor
|affiliation=[[The Player]]
}}
== CYOA Description ==
Political, economic, and interpersonal matters are obviously below you. Your focus should be on your own personal goals, not petty political disputes between empires or the inflation rates on distant, irrelevant worlds. The Emissary serves to alleviate all of these concerns to free up your time and energy as much as possible.
They will serve as a representative for your interest in all of these cases and more, cool-headed and diplomatic. They are exceedingly skilled at these tasks and are capable of completing them efficiently and flawlessly in your favour. Watch mountains of busywork and errands melt effortlessly beneath their efforts, gliding through the governance of countless worlds in minutes or the acquisition of custom-made luxury items in less time.
The Emissary is incapable of betraying you or pursuing interests other than yours.
The Emissary’s only personal abilities are relative immortality and the ability to discern and follow your will preternaturally, as to best serve your interests the cosmos over. In essence, any task not requiring your phenomenal cosmic powers to complete may be completed by The Emissary in your place. They will faithfully serve as an informant and representative in all matters you do not wish to deal with personally. Of course, you may come in person to any of these matters for effect or as a display of intimidation, but you will never need to if you don’t want to.
This individual will arrive on a custom-ordered basis according to your specifications, whether in appearance, disposition, alien species, gender, or otherwise.
7c49ab6b7666208aeda06b2c4268418f80e93de4
121
120
2023-06-03T03:34:33Z
Pasadena
2
wikitext
text/x-wiki
[[Category:Characters]]
[[Category:Living God CYOA Characters]]
{{Character
|image=The Emissary.jpg
|biographical_information_section=Biographical information
|title=The Emissary
|physical_description_section=Physical description
|hair_colour=Black (default)
|eye_colour=Black (default)
|skin_colour=White (default)
|personal_information_section=Personal information
|gender=Male (default)
|allies=[[The Player]]
|political_information_section=Political information
|occupation=Representative<br>Diplomat<br>Emissary<br>Bureaucrat<br>Governor
|affiliation=[[The Player]]
}}
'''The Emissary''' is a potential Subordinate for the player in the [[Living God CYOA]].
== CYOA Description ==
Political, economic, and interpersonal matters are obviously below you. Your focus should be on your own personal goals, not petty political disputes between empires or the inflation rates on distant, irrelevant worlds. The Emissary serves to alleviate all of these concerns to free up your time and energy as much as possible.
They will serve as a representative for your interest in all of these cases and more, cool-headed and diplomatic. They are exceedingly skilled at these tasks and are capable of completing them efficiently and flawlessly in your favour. Watch mountains of busywork and errands melt effortlessly beneath their efforts, gliding through the governance of countless worlds in minutes or the acquisition of custom-made luxury items in less time.
The Emissary is incapable of betraying you or pursuing interests other than yours.
The Emissary’s only personal abilities are relative immortality and the ability to discern and follow your will preternaturally, as to best serve your interests the cosmos over. In essence, any task not requiring your phenomenal cosmic powers to complete may be completed by The Emissary in your place. They will faithfully serve as an informant and representative in all matters you do not wish to deal with personally. Of course, you may come in person to any of these matters for effect or as a display of intimidation, but you will never need to if you don’t want to.
This individual will arrive on a custom-ordered basis according to your specifications, whether in appearance, disposition, alien species, gender, or otherwise.
8ee5449a94fbed9c4f800be98e70f041799e18e2
122
121
2023-06-03T03:38:24Z
Pasadena
2
wikitext
text/x-wiki
[[Category:Characters]]
[[Category:Living God CYOA Characters]]
{{Character
|image=The Emissary.jpg
|biographical_information_section=Biographical information
|title=The Emissary
|physical_description_section=Physical description
|hair_colour=Black/Dark brown (default)
|skin_colour=White (default)
|personal_information_section=Personal information
|gender=Male (default)
|allies=[[The Player]]
|political_information_section=Political information
|occupation=Representative<br>Diplomat<br>Emissary<br>Bureaucrat<br>Governor
|affiliation=[[The Player]]
}}
'''The Emissary''' is a potential Subordinate for the player in the [[Living God CYOA]].
== CYOA Description ==
Political, economic, and interpersonal matters are obviously below you. Your focus should be on your own personal goals, not petty political disputes between empires or the inflation rates on distant, irrelevant worlds. The Emissary serves to alleviate all of these concerns to free up your time and energy as much as possible.
They will serve as a representative for your interest in all of these cases and more, cool-headed and diplomatic. They are exceedingly skilled at these tasks and are capable of completing them efficiently and flawlessly in your favour. Watch mountains of busywork and errands melt effortlessly beneath their efforts, gliding through the governance of countless worlds in minutes or the acquisition of custom-made luxury items in less time.
The Emissary is incapable of betraying you or pursuing interests other than yours.
The Emissary’s only personal abilities are relative immortality and the ability to discern and follow your will preternaturally, as to best serve your interests the cosmos over. In essence, any task not requiring your phenomenal cosmic powers to complete may be completed by The Emissary in your place. They will faithfully serve as an informant and representative in all matters you do not wish to deal with personally. Of course, you may come in person to any of these matters for effect or as a display of intimidation, but you will never need to if you don’t want to.
This individual will arrive on a custom-ordered basis according to your specifications, whether in appearance, disposition, alien species, gender, or otherwise.
2d13225d61d089a37712ce4cc42aa3eadefa2c32
Template:Character
10
35
108
2023-06-03T03:12:21Z
Pasadena
2
Infobox created with infobox builder.
wikitext
text/x-wiki
<infobox><title source="name"><default>{{PAGENAME}}</default></title><image source="image"/><title source="biographical_information_section"><default>Biographical Information</default></title><data source="alias"><label>Alias</label></data><data source="aliases"><label>Aliases</label></data><data source="nickname"><label>Nickname</label></data><data source="nicknames"><label>Nicknames</label></data><data source="epithet"><label>Epithet</label></data><data source="Epithets"><label>Epithets</label></data><data source="title"><label>Title</label></data><data source="titles"><label>Titles</label></data><data source="nationality"><label>Nationality</label></data><data source="ethnicity"><label>Ethnicity</label></data><data source="clan"><label>Clan</label></data><data source="clans"><label>Clans</label></data><data source="house"><label>House</label></data><data source="houses"><label>Houses</label></data><data source="family"><label>Family</label></data><data source="status"><label>Status</label></data><data source="age"><label>Age</label></data><data source="born"><label>Born</label></data><data source="died"><label>Died</label></data><data source="blood_type"><label>Blood type</label></data><data source="birthplace"><label>Birthplace</label></data><title source="physical_description_section"><default>Physical Description</default></title><data source="hair_colour"><label>Hair colour</label></data><data source="eye_colour"><label>Eye colour</label></data><data source="skin_colour"><label>Skin colour</label></data><data source="heigh"><label>Height</label></data><data source="weight"><label>Weight</label></data><title source="personal_information_section"><default>Personal Information</default></title><data source="gender"><label>Gender</label></data><data source="love_interest"><label>Love interest</label></data><data source="love_interests"><label>Love interests</label></data><data source="allies"><label>Allies</label></data><data source="enemies"><label>Enemies</label></data><data source="weapon_of_choice"><label>Weapon of choice</label></data><data source="fighting_styles"><label>Fighting styles</label></data><title source="political_information_section"><default>Political Information</default></title><data source="occupation"><label>Occupation</label></data><data source="position"><label>Position</label></data><data source="predecessor"><label>Predecessor</label></data><data source="successor"><label>Successor</label></data><data source="affiliation"><label>Affiliation</label></data><data source="team"><label>Team</label></data><data source="teams"><label>Teams</label></data></infobox>
915a1c14ceb26780855a8aa95bd459e580f327c8
109
108
2023-06-03T03:12:48Z
Pasadena
2
wikitext
text/x-wiki
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<title source="biographical_information_section">
<default>Biographical Information</default>
</title>
<data source="alias">
<label>Alias</label>
</data>
<data source="aliases">
<label>Aliases</label>
</data>
<data source="nickname">
<label>Nickname</label>
</data>
<data source="nicknames">
<label>Nicknames</label>
</data>
<data source="epithet">
<label>Epithet</label>
</data>
<data source="Epithets">
<label>Epithets</label>
</data>
<data source="title">
<label>Title</label>
</data>
<data source="titles">
<label>Titles</label>
</data>
<data source="nationality">
<label>Nationality</label>
</data>
<data source="ethnicity">
<label>Ethnicity</label>
</data>
<data source="clan">
<label>Clan</label>
</data>
<data source="clans">
<label>Clans</label>
</data>
<data source="house">
<label>House</label>
</data>
<data source="houses">
<label>Houses</label>
</data>
<data source="family">
<label>Family</label>
</data>
<data source="status">
<label>Status</label>
</data>
<data source="age">
<label>Age</label>
</data>
<data source="born">
<label>Born</label>
</data>
<data source="died">
<label>Died</label>
</data>
<data source="blood_type">
<label>Blood type</label>
</data>
<data source="birthplace">
<label>Birthplace</label>
</data>
<title source="physical_description_section">
<default>Physical Description</default>
</title>
<data source="hair_colour">
<label>Hair colour</label>
</data>
<data source="eye_colour">
<label>Eye colour</label>
</data>
<data source="skin_colour">
<label>Skin colour</label>
</data>
<data source="heigh">
<label>Height</label>
</data>
<data source="weight">
<label>Weight</label>
</data>
<title source="personal_information_section">
<default>Personal Information</default>
</title>
<data source="gender">
<label>Gender</label>
</data>
<data source="love_interest">
<label>Love interest</label>
</data>
<data source="love_interests">
<label>Love interests</label>
</data>
<data source="allies">
<label>Allies</label>
</data>
<data source="enemies">
<label>Enemies</label>
</data>
<data source="weapon_of_choice">
<label>Weapon of choice</label>
</data>
<data source="fighting_styles">
<label>Fighting styles</label>
</data>
<title source="political_information_section">
<default>Political Information</default>
</title>
<data source="occupation">
<label>Occupation</label>
</data>
<data source="position">
<label>Position</label>
</data>
<data source="predecessor">
<label>Predecessor</label>
</data>
<data source="successor">
<label>Successor</label>
</data>
<data source="affiliation">
<label>Affiliation</label>
</data>
<data source="team">
<label>Team</label>
</data>
<data source="teams">
<label>Teams</label>
</data>
</infobox>
7f7f3b7a7201b45f8ea3ca9181a2ad1150345ca1
110
109
2023-06-03T03:16:39Z
Pasadena
2
wikitext
text/x-wiki
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<title source="biographical_information_section">
<default>Biographical Information</default>
</title>
<data source="alias">
<label>Alias</label>
</data>
<data source="aliases">
<label>Aliases</label>
</data>
<data source="nickname">
<label>Nickname</label>
</data>
<data source="nicknames">
<label>Nicknames</label>
</data>
<data source="epithet">
<label>Epithet</label>
</data>
<data source="Epithets">
<label>Epithets</label>
</data>
<data source="title">
<label>Title</label>
</data>
<data source="titles">
<label>Titles</label>
</data>
<data source="nationality">
<label>Nationality</label>
</data>
<data source="ethnicity">
<label>Ethnicity</label>
</data>
<data source="clan">
<label>Clan</label>
</data>
<data source="clans">
<label>Clans</label>
</data>
<data source="house">
<label>House</label>
</data>
<data source="houses">
<label>Houses</label>
</data>
<data source="family">
<label>Family</label>
</data>
<data source="status">
<label>Status</label>
</data>
<data source="age">
<label>Age</label>
</data>
<data source="born">
<label>Born</label>
</data>
<data source="died">
<label>Died</label>
</data>
<data source="blood_type">
<label>Blood type</label>
</data>
<data source="birthplace">
<label>Birthplace</label>
</data>
<title source="physical_description_section">
<default>Physical Description</default>
</title>
<data source="hair_colour">
<label>Hair colour</label>
</data>
<data source="eye_colour">
<label>Eye colour</label>
</data>
<data source="skin_colour">
<label>Skin colour</label>
</data>
<data source="height">
<label>Height</label>
</data>
<data source="weight">
<label>Weight</label>
</data>
<title source="personal_information_section">
<default>Personal Information</default>
</title>
<data source="gender">
<label>Gender</label>
</data>
<data source="love_interest">
<label>Love interest</label>
</data>
<data source="love_interests">
<label>Love interests</label>
</data>
<data source="allies">
<label>Allies</label>
</data>
<data source="enemies">
<label>Enemies</label>
</data>
<data source="weapon_of_choice">
<label>Weapon of choice</label>
</data>
<data source="fighting_styles">
<label>Fighting styles</label>
</data>
<title source="political_information_section">
<default>Political Information</default>
</title>
<data source="occupation">
<label>Occupation</label>
</data>
<data source="position">
<label>Position</label>
</data>
<data source="predecessor">
<label>Predecessor</label>
</data>
<data source="successor">
<label>Successor</label>
</data>
<data source="affiliation">
<label>Affiliation</label>
</data>
<data source="team">
<label>Team</label>
</data>
<data source="teams">
<label>Teams</label>
</data>
</infobox>
d97ca93c5e5235f0d72dc3e051f365aabadbf129
111
110
2023-06-03T03:18:59Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
== Usage ==
<pre>
{{Character
name= (Keep empty if same as page title)
image=
biographical_information_section=Put 'Biographical information' if there exists information
alias=
aliases=
nickname=
nicknames=
epithet=
epithets=
title=
titles=
nationality=
ethnicity=
clan=
clans=
house=
houses=
family=
status= (Alive|Dead|Unknown)
age=
born=
died=
blood_type=
birthplace=
physical_description_section=Put 'Physical description' if information exists
hair_colour=
eye_colour=
skin_colour=
height=
weight=
personal_information_section='Personal information' if info
gender=
love_interest=
love_interests=
spouse=
spouses=
allies=
enemies=
weapon_of_choice=
fighting_styles=
political_information_section='Political information' if info
occupation=
position=
predecessor=
successor=
affiliation=
team=
teams=
}}
</pre>
</noinclude>
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<title source="biographical_information_section">
<default>Biographical Information</default>
</title>
<data source="alias">
<label>Alias</label>
</data>
<data source="aliases">
<label>Aliases</label>
</data>
<data source="nickname">
<label>Nickname</label>
</data>
<data source="nicknames">
<label>Nicknames</label>
</data>
<data source="epithet">
<label>Epithet</label>
</data>
<data source="Epithets">
<label>Epithets</label>
</data>
<data source="title">
<label>Title</label>
</data>
<data source="titles">
<label>Titles</label>
</data>
<data source="nationality">
<label>Nationality</label>
</data>
<data source="ethnicity">
<label>Ethnicity</label>
</data>
<data source="clan">
<label>Clan</label>
</data>
<data source="clans">
<label>Clans</label>
</data>
<data source="house">
<label>House</label>
</data>
<data source="houses">
<label>Houses</label>
</data>
<data source="family">
<label>Family</label>
</data>
<data source="status">
<label>Status</label>
</data>
<data source="age">
<label>Age</label>
</data>
<data source="born">
<label>Born</label>
</data>
<data source="died">
<label>Died</label>
</data>
<data source="blood_type">
<label>Blood type</label>
</data>
<data source="birthplace">
<label>Birthplace</label>
</data>
<title source="physical_description_section">
<default>Physical Description</default>
</title>
<data source="hair_colour">
<label>Hair colour</label>
</data>
<data source="eye_colour">
<label>Eye colour</label>
</data>
<data source="skin_colour">
<label>Skin colour</label>
</data>
<data source="height">
<label>Height</label>
</data>
<data source="weight">
<label>Weight</label>
</data>
<title source="personal_information_section">
<default>Personal Information</default>
</title>
<data source="gender">
<label>Gender</label>
</data>
<data source="love_interest">
<label>Love interest</label>
</data>
<data source="love_interests">
<label>Love interests</label>
</data>
<data source="spouse">
<label>Spouse</label>
</data>
<data source="spouses">
<label>Spouses</label>
</data>
<data source="allies">
<label>Allies</label>
</data>
<data source="enemies">
<label>Enemies</label>
</data>
<data source="weapon_of_choice">
<label>Weapon of choice</label>
</data>
<data source="fighting_styles">
<label>Fighting styles</label>
</data>
<title source="political_information_section">
<default>Political Information</default>
</title>
<data source="occupation">
<label>Occupation</label>
</data>
<data source="position">
<label>Position</label>
</data>
<data source="predecessor">
<label>Predecessor</label>
</data>
<data source="successor">
<label>Successor</label>
</data>
<data source="affiliation">
<label>Affiliation</label>
</data>
<data source="team">
<label>Team</label>
</data>
<data source="teams">
<label>Teams</label>
</data>
</infobox>
247de89077709c3fbe5e57fbce8fd4c23a20fcc0
112
111
2023-06-03T03:20:07Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
== Categories ==
Don't forget to add the appropriate categories.
<pre>
[[Category:Characters]]
[[Category:XYZ CYOA Characters]]
[[Category:Lore]]
[[Category:XYZ CYOA Lore]]
</pre>
== Usage ==
<pre>
{{Character
name= (Keep empty if same as page title)
image=
biographical_information_section=Put 'Biographical information' if there exists information
alias=
aliases=
nickname=
nicknames=
epithet=
epithets=
title=
titles=
nationality=
ethnicity=
clan=
clans=
house=
houses=
family=
status= (Alive|Dead|Unknown)
age=
born=
died=
blood_type=
birthplace=
physical_description_section=Put 'Physical description' if information exists
hair_colour=
eye_colour=
skin_colour=
height=
weight=
personal_information_section='Personal information' if info
gender=
love_interest=
love_interests=
spouse=
spouses=
allies=
enemies=
weapon_of_choice=
fighting_styles=
political_information_section='Political information' if info
occupation=
position=
predecessor=
successor=
affiliation=
team=
teams=
}}
</pre>
</noinclude>
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<title source="biographical_information_section">
<default>Biographical Information</default>
</title>
<data source="alias">
<label>Alias</label>
</data>
<data source="aliases">
<label>Aliases</label>
</data>
<data source="nickname">
<label>Nickname</label>
</data>
<data source="nicknames">
<label>Nicknames</label>
</data>
<data source="epithet">
<label>Epithet</label>
</data>
<data source="Epithets">
<label>Epithets</label>
</data>
<data source="title">
<label>Title</label>
</data>
<data source="titles">
<label>Titles</label>
</data>
<data source="nationality">
<label>Nationality</label>
</data>
<data source="ethnicity">
<label>Ethnicity</label>
</data>
<data source="clan">
<label>Clan</label>
</data>
<data source="clans">
<label>Clans</label>
</data>
<data source="house">
<label>House</label>
</data>
<data source="houses">
<label>Houses</label>
</data>
<data source="family">
<label>Family</label>
</data>
<data source="status">
<label>Status</label>
</data>
<data source="age">
<label>Age</label>
</data>
<data source="born">
<label>Born</label>
</data>
<data source="died">
<label>Died</label>
</data>
<data source="blood_type">
<label>Blood type</label>
</data>
<data source="birthplace">
<label>Birthplace</label>
</data>
<title source="physical_description_section">
<default>Physical Description</default>
</title>
<data source="hair_colour">
<label>Hair colour</label>
</data>
<data source="eye_colour">
<label>Eye colour</label>
</data>
<data source="skin_colour">
<label>Skin colour</label>
</data>
<data source="height">
<label>Height</label>
</data>
<data source="weight">
<label>Weight</label>
</data>
<title source="personal_information_section">
<default>Personal Information</default>
</title>
<data source="gender">
<label>Gender</label>
</data>
<data source="love_interest">
<label>Love interest</label>
</data>
<data source="love_interests">
<label>Love interests</label>
</data>
<data source="spouse">
<label>Spouse</label>
</data>
<data source="spouses">
<label>Spouses</label>
</data>
<data source="allies">
<label>Allies</label>
</data>
<data source="enemies">
<label>Enemies</label>
</data>
<data source="weapon_of_choice">
<label>Weapon of choice</label>
</data>
<data source="fighting_styles">
<label>Fighting styles</label>
</data>
<title source="political_information_section">
<default>Political Information</default>
</title>
<data source="occupation">
<label>Occupation</label>
</data>
<data source="position">
<label>Position</label>
</data>
<data source="predecessor">
<label>Predecessor</label>
</data>
<data source="successor">
<label>Successor</label>
</data>
<data source="affiliation">
<label>Affiliation</label>
</data>
<data source="team">
<label>Team</label>
</data>
<data source="teams">
<label>Teams</label>
</data>
</infobox>
46a849ee97d1597b66d89666c0667bab9d54b736
117
112
2023-06-03T03:29:52Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
[[Category:Template]]
== Categories ==
Don't forget to add the appropriate categories.
<pre>
[[Category:Characters]]
[[Category:XYZ CYOA Characters]]
[[Category:Lore]]
[[Category:XYZ CYOA Lore]]
</pre>
== Usage ==
<pre>
{{Character
name= (Keep empty if same as page title)
image=
biographical_information_section=Put 'Biographical information' if there exists information
alias=
aliases=
nickname=
nicknames=
epithet=
epithets=
title=
titles=
nationality=
ethnicity=
clan=
clans=
house=
houses=
family=
status= (Alive|Dead|Unknown)
age=
born=
died=
blood_type=
birthplace=
physical_description_section=Put 'Physical description' if information exists
hair_colour=
eye_colour=
skin_colour=
height=
weight=
personal_information_section='Personal information' if info
gender=
love_interest=
love_interests=
spouse=
spouses=
allies=
enemies=
weapon_of_choice=
fighting_styles=
political_information_section='Political information' if info
occupation=
position=
predecessor=
successor=
affiliation=
team=
teams=
}}
</pre>
</noinclude>
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<title source="biographical_information_section">
<default>Biographical Information</default>
</title>
<data source="alias">
<label>Alias</label>
</data>
<data source="aliases">
<label>Aliases</label>
</data>
<data source="nickname">
<label>Nickname</label>
</data>
<data source="nicknames">
<label>Nicknames</label>
</data>
<data source="epithet">
<label>Epithet</label>
</data>
<data source="Epithets">
<label>Epithets</label>
</data>
<data source="title">
<label>Title</label>
</data>
<data source="titles">
<label>Titles</label>
</data>
<data source="nationality">
<label>Nationality</label>
</data>
<data source="ethnicity">
<label>Ethnicity</label>
</data>
<data source="clan">
<label>Clan</label>
</data>
<data source="clans">
<label>Clans</label>
</data>
<data source="house">
<label>House</label>
</data>
<data source="houses">
<label>Houses</label>
</data>
<data source="family">
<label>Family</label>
</data>
<data source="status">
<label>Status</label>
</data>
<data source="age">
<label>Age</label>
</data>
<data source="born">
<label>Born</label>
</data>
<data source="died">
<label>Died</label>
</data>
<data source="blood_type">
<label>Blood type</label>
</data>
<data source="birthplace">
<label>Birthplace</label>
</data>
<title source="physical_description_section">
<default>Physical Description</default>
</title>
<data source="hair_colour">
<label>Hair colour</label>
</data>
<data source="eye_colour">
<label>Eye colour</label>
</data>
<data source="skin_colour">
<label>Skin colour</label>
</data>
<data source="height">
<label>Height</label>
</data>
<data source="weight">
<label>Weight</label>
</data>
<title source="personal_information_section">
<default>Personal Information</default>
</title>
<data source="gender">
<label>Gender</label>
</data>
<data source="love_interest">
<label>Love interest</label>
</data>
<data source="love_interests">
<label>Love interests</label>
</data>
<data source="spouse">
<label>Spouse</label>
</data>
<data source="spouses">
<label>Spouses</label>
</data>
<data source="allies">
<label>Allies</label>
</data>
<data source="enemies">
<label>Enemies</label>
</data>
<data source="weapon_of_choice">
<label>Weapon of choice</label>
</data>
<data source="fighting_styles">
<label>Fighting styles</label>
</data>
<title source="political_information_section">
<default>Political Information</default>
</title>
<data source="occupation">
<label>Occupation</label>
</data>
<data source="position">
<label>Position</label>
</data>
<data source="predecessor">
<label>Predecessor</label>
</data>
<data source="successor">
<label>Successor</label>
</data>
<data source="affiliation">
<label>Affiliation</label>
</data>
<data source="team">
<label>Team</label>
</data>
<data source="teams">
<label>Teams</label>
</data>
</infobox>
33c3c732f357c4b373473eba609ed27390ac05ff
118
117
2023-06-03T03:32:16Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
[[Category:Templates]]
== Categories ==
Don't forget to add the appropriate categories.
<pre>
[[Category:Characters]]
[[Category:XYZ CYOA Characters]]
[[Category:Lore]]
[[Category:XYZ CYOA Lore]]
</pre>
== Usage ==
<pre>
{{Character
name= (Keep empty if same as page title)
image=
biographical_information_section=Put 'Biographical information' if there exists information
alias=
aliases=
nickname=
nicknames=
epithet=
epithets=
title=
titles=
nationality=
ethnicity=
clan=
clans=
house=
houses=
family=
status= (Alive|Dead|Unknown)
age=
born=
died=
blood_type=
birthplace=
physical_description_section=Put 'Physical description' if information exists
hair_colour=
eye_colour=
skin_colour=
height=
weight=
personal_information_section='Personal information' if info
gender=
love_interest=
love_interests=
spouse=
spouses=
allies=
enemies=
weapon_of_choice=
fighting_styles=
political_information_section='Political information' if info
occupation=
position=
predecessor=
successor=
affiliation=
team=
teams=
}}
</pre>
</noinclude>
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<title source="biographical_information_section">
<default>Biographical Information</default>
</title>
<data source="alias">
<label>Alias</label>
</data>
<data source="aliases">
<label>Aliases</label>
</data>
<data source="nickname">
<label>Nickname</label>
</data>
<data source="nicknames">
<label>Nicknames</label>
</data>
<data source="epithet">
<label>Epithet</label>
</data>
<data source="Epithets">
<label>Epithets</label>
</data>
<data source="title">
<label>Title</label>
</data>
<data source="titles">
<label>Titles</label>
</data>
<data source="nationality">
<label>Nationality</label>
</data>
<data source="ethnicity">
<label>Ethnicity</label>
</data>
<data source="clan">
<label>Clan</label>
</data>
<data source="clans">
<label>Clans</label>
</data>
<data source="house">
<label>House</label>
</data>
<data source="houses">
<label>Houses</label>
</data>
<data source="family">
<label>Family</label>
</data>
<data source="status">
<label>Status</label>
</data>
<data source="age">
<label>Age</label>
</data>
<data source="born">
<label>Born</label>
</data>
<data source="died">
<label>Died</label>
</data>
<data source="blood_type">
<label>Blood type</label>
</data>
<data source="birthplace">
<label>Birthplace</label>
</data>
<title source="physical_description_section">
<default>Physical Description</default>
</title>
<data source="hair_colour">
<label>Hair colour</label>
</data>
<data source="eye_colour">
<label>Eye colour</label>
</data>
<data source="skin_colour">
<label>Skin colour</label>
</data>
<data source="height">
<label>Height</label>
</data>
<data source="weight">
<label>Weight</label>
</data>
<title source="personal_information_section">
<default>Personal Information</default>
</title>
<data source="gender">
<label>Gender</label>
</data>
<data source="love_interest">
<label>Love interest</label>
</data>
<data source="love_interests">
<label>Love interests</label>
</data>
<data source="spouse">
<label>Spouse</label>
</data>
<data source="spouses">
<label>Spouses</label>
</data>
<data source="allies">
<label>Allies</label>
</data>
<data source="enemies">
<label>Enemies</label>
</data>
<data source="weapon_of_choice">
<label>Weapon of choice</label>
</data>
<data source="fighting_styles">
<label>Fighting styles</label>
</data>
<title source="political_information_section">
<default>Political Information</default>
</title>
<data source="occupation">
<label>Occupation</label>
</data>
<data source="position">
<label>Position</label>
</data>
<data source="predecessor">
<label>Predecessor</label>
</data>
<data source="successor">
<label>Successor</label>
</data>
<data source="affiliation">
<label>Affiliation</label>
</data>
<data source="team">
<label>Team</label>
</data>
<data source="teams">
<label>Teams</label>
</data>
</infobox>
5eddb05a3e8b6915d42761a55d4a4035d5a082ae
119
118
2023-06-03T03:33:26Z
Pasadena
2
wikitext
text/x-wiki
<noinclude>
[[Category:Templates]]
== Categories ==
Don't forget to add the appropriate categories.
<pre>
[[Category:Characters]]
[[Category:XYZ CYOA Characters]]
[[Category:Lore]]
[[Category:XYZ CYOA Lore]]
</pre>
== Usage ==
<pre>
{{Character
|name= (Keep empty if same as page title)
|image=
|biographical_information_section=Put 'Biographical information' if there exists information
|alias=
|aliases=
|nickname=
|nicknames=
|epithet=
|epithets=
|title=
|titles=
|nationality=
|ethnicity=
|clan=
|clans=
|house=
|houses=
|family=
|status= (Alive|Dead|Unknown)
|age=
|born=
|died=
|blood_type=
|birthplace=
|physical_description_section=Put 'Physical description' if information exists
|hair_colour=
|eye_colour=
|skin_colour=
|height=
|weight=
|personal_information_section='Personal information' if info
|gender=
|love_interest=
|love_interests=
|spouse=
|spouses=
|allies=
|enemies=
|weapon_of_choice=
|fighting_styles=
|political_information_section='Political information' if info
|occupation=
|position=
|predecessor=
|successor=
|affiliation=
|team=
|teams=
}}
</pre>
</noinclude>
<infobox>
<title source="name">
<default>{{PAGENAME}}</default>
</title>
<image source="image" />
<title source="biographical_information_section">
<default>Biographical Information</default>
</title>
<data source="alias">
<label>Alias</label>
</data>
<data source="aliases">
<label>Aliases</label>
</data>
<data source="nickname">
<label>Nickname</label>
</data>
<data source="nicknames">
<label>Nicknames</label>
</data>
<data source="epithet">
<label>Epithet</label>
</data>
<data source="Epithets">
<label>Epithets</label>
</data>
<data source="title">
<label>Title</label>
</data>
<data source="titles">
<label>Titles</label>
</data>
<data source="nationality">
<label>Nationality</label>
</data>
<data source="ethnicity">
<label>Ethnicity</label>
</data>
<data source="clan">
<label>Clan</label>
</data>
<data source="clans">
<label>Clans</label>
</data>
<data source="house">
<label>House</label>
</data>
<data source="houses">
<label>Houses</label>
</data>
<data source="family">
<label>Family</label>
</data>
<data source="status">
<label>Status</label>
</data>
<data source="age">
<label>Age</label>
</data>
<data source="born">
<label>Born</label>
</data>
<data source="died">
<label>Died</label>
</data>
<data source="blood_type">
<label>Blood type</label>
</data>
<data source="birthplace">
<label>Birthplace</label>
</data>
<title source="physical_description_section">
<default>Physical Description</default>
</title>
<data source="hair_colour">
<label>Hair colour</label>
</data>
<data source="eye_colour">
<label>Eye colour</label>
</data>
<data source="skin_colour">
<label>Skin colour</label>
</data>
<data source="height">
<label>Height</label>
</data>
<data source="weight">
<label>Weight</label>
</data>
<title source="personal_information_section">
<default>Personal Information</default>
</title>
<data source="gender">
<label>Gender</label>
</data>
<data source="love_interest">
<label>Love interest</label>
</data>
<data source="love_interests">
<label>Love interests</label>
</data>
<data source="spouse">
<label>Spouse</label>
</data>
<data source="spouses">
<label>Spouses</label>
</data>
<data source="allies">
<label>Allies</label>
</data>
<data source="enemies">
<label>Enemies</label>
</data>
<data source="weapon_of_choice">
<label>Weapon of choice</label>
</data>
<data source="fighting_styles">
<label>Fighting styles</label>
</data>
<title source="political_information_section">
<default>Political Information</default>
</title>
<data source="occupation">
<label>Occupation</label>
</data>
<data source="position">
<label>Position</label>
</data>
<data source="predecessor">
<label>Predecessor</label>
</data>
<data source="successor">
<label>Successor</label>
</data>
<data source="affiliation">
<label>Affiliation</label>
</data>
<data source="team">
<label>Team</label>
</data>
<data source="teams">
<label>Teams</label>
</data>
</infobox>
975aef407b4cc41f609141c71d5616436a7d2b33
File:The Emissary.jpg
6
36
113
2023-06-03T03:24:38Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
114
113
2023-06-03T03:25:00Z
Pasadena
2
Pasadena moved page [[File:The emissary.jpg]] to [[File:The Emissary.jpg]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:The emissary.jpg
6
37
115
2023-06-03T03:25:00Z
Pasadena
2
Pasadena moved page [[File:The emissary.jpg]] to [[File:The Emissary.jpg]]
wikitext
text/x-wiki
#REDIRECT [[File:The Emissary.jpg]]
2a2e1bcc3ca0bbaa4d3fa110ff90aec0ebe39792
Interactive CYOA Tutorial
0
22
123
83
2023-06-09T23:21:08Z
Pasadena
2
/* Rows */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
==== Cloning and Deleting Rows ====
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
39289b99d76e4e42f1030821ffc8149fe70994fa
126
123
2023-06-09T23:28:06Z
Pasadena
2
/* Rows */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist.
Create a row by opening up the sidebar and pressing '''Create New Row'''.
[[File:1_creating_a_row.gif|200px|thumb|left|Caption]]
==== Creating Rows====
==== Cloning and Deleting Rows ====
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
b91789a89c1aca20fb3d5672aa637cb88e7c619f
127
126
2023-06-09T23:28:38Z
Pasadena
2
/* Rows */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
[[File:1_creating_a_row.gif]]
==== Cloning and Deleting Rows ====
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
6d6c2eab6b15da6aca79876f397c7b044d96a81b
128
127
2023-06-09T23:32:13Z
Pasadena
2
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
[[File:1_creating_a_row.gif|upright=1.0]]
==== Cloning and Deleting Rows ====
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
69b0135e329209012b7e6cc9317e08e211da6c40
129
128
2023-06-09T23:35:34Z
Pasadena
2
/* Creating Rows */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
[[File:1_creating_a_row.gif|frame|upright=1.0]]
==== Cloning and Deleting Rows ====
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
27d0f299943fc4c945d57a0eb7b82f64b4ba2ae3
130
129
2023-06-09T23:47:48Z
Pasadena
2
/* Creating Rows */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
[[File:1_creating_a_row.gif]]
==== Cloning and Deleting Rows ====
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
738007ec76f98c905a618b56934576bb31526302
132
130
2023-06-09T23:49:42Z
Pasadena
2
/* Creating Rows */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif]]
</div>
==== Cloning and Deleting Rows ====
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
4209bff3b9881851a71f91007921bd4924f39235
136
132
2023-06-09T23:52:58Z
Pasadena
2
/* Creating Rows */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning and Deleting Rows ====
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
618e9070a3900342c0d0b429198316cf4c8d20f8
140
136
2023-06-10T00:02:55Z
Pasadena
2
/* Cloning and Deleting Rows */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button.
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
76b7178b495ac7f087c285e644a1bd3c01f2fefe
144
140
2023-06-10T00:11:02Z
Pasadena
2
/* Cloning Rows */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
<div class="res-img">[[File:4 clone row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button.
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
aebe891698b3ca049fd71b932d6e43bb2077dfd8
145
144
2023-06-10T00:11:58Z
Pasadena
2
/* Deleting Rows */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. It is not only a section that divides the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
<div class="res-img">[[File:4 clone row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
a54e727bd131782b7d1ba580207ec6873fa9e9b1
146
145
2023-06-10T00:13:03Z
Pasadena
2
/* Rows */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
b5377ad0ae81de57ac8fbc9db755b6d2fd32d4ea
147
146
2023-06-10T00:15:09Z
Pasadena
2
Protected "[[Interactive CYOA Tutorial]]": High traffic page ([Edit=Allow only logged in users] (indefinite) [Move=Allow only logged in users] (indefinite))
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
b5377ad0ae81de57ac8fbc9db755b6d2fd32d4ea
148
147
2023-06-10T00:15:41Z
Pasadena
2
Changed protection settings for "[[Interactive CYOA Tutorial]]": High traffic page ([Edit=Allow only logged in users] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
b5377ad0ae81de57ac8fbc9db755b6d2fd32d4ea
File:1 creating a row.gif
6
38
125
2023-06-09T23:25:55Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
MediaWiki:Common.css
8
39
131
2023-06-09T23:49:08Z
Pasadena
2
Created page with "/* CSS placed here will be applied to all skins */ /* To make images responsive */ .res-img img { max-width:100%; height:auto; }"
css
text/css
/* CSS placed here will be applied to all skins */
/* To make images responsive */
.res-img img {
max-width:100%;
height:auto;
}
3386ea9b3c1eb714139ed089244fab7650513a9a
CYOA Wiki:Editing
4
40
134
2023-06-09T23:51:38Z
Pasadena
2
Created page with "== GIF overflowing == If a gif is overflowing the screen, simply wrap the image in this class like so. <pre> <div class="res-img"> [[File:image.gif]] </div> <div class="res-img">[[File:image.gif]]</div> </pre>"
wikitext
text/x-wiki
== GIF overflowing ==
If a gif is overflowing the screen, simply wrap the image in this class like so.
<pre>
<div class="res-img">
[[File:image.gif]]
</div>
<div class="res-img">[[File:image.gif]]</div>
</pre>
8faa101cdd60f4b33cf09ece12ca131ea573deb3
135
134
2023-06-09T23:52:02Z
Pasadena
2
wikitext
text/x-wiki
== Image overflowing ==
If an image like a gif is overflowing the screen, simply wrap the image in this class like so.
<pre>
<div class="res-img">
[[File:image.gif]]
</div>
<div class="res-img">[[File:image.gif]]</div>
</pre>
9dada2c0abbe4b1187f4e49098dc6a133545dc6a
143
135
2023-06-10T00:10:20Z
Pasadena
2
wikitext
text/x-wiki
== Image overflowing ==
If an image like a gif is overflowing the screen, simply wrap the image in this class like so.
<pre>
<div class="res-img">
[[File:image.gif]]
</div>
<div class="res-img">[[File:image.gif]]</div>
</pre>
== Get rid of image zoom and link ==
Simply add <pre>|link=</pre> to the end, making sure that the link is empty.
<pre>
<div class="res-img">
[[File:image.gif|link=]]
</div>
<div class="res-img">[[File:image.gif|link=]]</div>
</pre>
51f94aee05df82de577737e9aad04af3ffce1171
File:2 clone button.png
6
41
138
2023-06-09T23:58:35Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:3 delete button.png
6
42
139
2023-06-09T23:59:00Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:5 delete row.gif
6
43
141
2023-06-10T00:08:38Z
Pasadena
2
Uploaded own work with UploadWizard
wikitext
text/x-wiki
=={{int:filedesc}}==
{{Information
|description={{en|1=Tutorial}}
|date=2023-06-10
|source={{own}}
|author=[[User:Pasadena|Pasadena]]
|permission=
|other versions=
}}
=={{int:license-header}}==
{{self|cc-by-sa-4.0}}
194b3619574dd25db596df5cbd897f9da31f7a64
File:4 clone row.gif
6
44
142
2023-06-10T00:08:38Z
Pasadena
2
Uploaded own work with UploadWizard
wikitext
text/x-wiki
=={{int:filedesc}}==
{{Information
|description={{en|1=Tutorial}}
|date=2023-06-10
|source={{own}}
|author=[[User:Pasadena|Pasadena]]
|permission=
|other versions=
}}
=={{int:license-header}}==
{{self|cc-by-sa-4.0}}
194b3619574dd25db596df5cbd897f9da31f7a64
Interactive CYOA Creator
0
45
149
2023-06-10T00:18:37Z
Pasadena
2
Created page with "The '''Interactive CYOA Creator''' or '''ICC''' is a program that can be used to create [[Interactive CYOA]]s, made by [[MeanDelay]]. You do not need to have bought the creator in order to use it, but it does support the developer. == Links == * [https://intcyoacreator.onrender.com/ Online creator] * [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]"
wikitext
text/x-wiki
The '''Interactive CYOA Creator''' or '''ICC''' is a program that can be used to create [[Interactive CYOA]]s, made by [[MeanDelay]].
You do not need to have bought the creator in order to use it, but it does support the developer.
== Links ==
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
cf7c1ba919d06057cc58537624d5d8e39aa7ed59
150
149
2023-06-10T00:19:06Z
Pasadena
2
wikitext
text/x-wiki
The '''Interactive CYOA Creator''' or '''ICC''' is a program that can be used to create [[Interactive CYOA]]s, made by [[MeanDelay]].
You do not need to have bought the creator in order to use it, but it does support the developer.
== Links ==
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [[Interactive CYOA Tutorial]] – Tutorial for using the creator
e3da970b45a76430032f4534651faa3a1570c53b
Interactive CYOA
0
46
151
2023-06-10T00:20:52Z
Pasadena
2
Created page with "'''Interactive CYOAs''' are a type of [[CYOA]] that are able to be interacted with. == Links == * [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA subreddit] * [https://docs.google.com/spreadsheets/d/1UKCn4of4jQ4L8eAdV3gT5QGdeav7jNSeyxxehKmUepE/edit#gid=0 Interactive CYOA Archive] by [[PixelGMS]]"
wikitext
text/x-wiki
'''Interactive CYOAs''' are a type of [[CYOA]] that are able to be interacted with.
== Links ==
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA subreddit]
* [https://docs.google.com/spreadsheets/d/1UKCn4of4jQ4L8eAdV3gT5QGdeav7jNSeyxxehKmUepE/edit#gid=0 Interactive CYOA Archive] by [[PixelGMS]]
f2e0598941e32fab49559de0f7078a7b7ac49fa0
CYOA
0
47
152
2023-06-10T00:41:40Z
Pasadena
2
Created page with "A '''CYOA''' (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be [[Static CYOA|pure text or text and images]], or even in [[Interactive CYOA|an interactive format]]. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand."
wikitext
text/x-wiki
A '''CYOA''' (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be [[Static CYOA|pure text or text and images]], or even in [[Interactive CYOA|an interactive format]]. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
5d7d4d64c376de7382f397b2aaad99ff0cbaad00
Interactive CYOA
0
46
153
151
2023-06-10T00:42:25Z
Pasadena
2
wikitext
text/x-wiki
'''Interactive CYOAs''' are a type of [[CYOA]] that are able to be interacted with.
== Links ==
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA subreddit]
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice subreddit] (primarily [[Static CYOA]]s, but there is an interactive filter)
* [https://docs.google.com/spreadsheets/d/1UKCn4of4jQ4L8eAdV3gT5QGdeav7jNSeyxxehKmUepE/edit#gid=0 Interactive CYOA Archive] by [[PixelGMS]]
6e8eaf5fa0f75657234e6c2b103f32bfdefb53a7
154
153
2023-06-10T00:42:56Z
Pasadena
2
/* Links */
wikitext
text/x-wiki
'''Interactive CYOAs''' are a type of [[CYOA]] that are able to be interacted with.
== Links ==
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA subreddit]
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice subreddit] (primarily [[Static CYOA]]s, but there are interactives there)
* [https://docs.google.com/spreadsheets/d/1UKCn4of4jQ4L8eAdV3gT5QGdeav7jNSeyxxehKmUepE/edit#gid=0 Interactive CYOA Archive] by [[PixelGMS]]
85312eb56f977f20661769b675931ff26b7c78b3
Static CYOA
0
48
155
2023-06-10T00:44:31Z
Pasadena
2
Created page with "'''Static CYOAs''' are [[CYOA]]s that are comprised of purely text, purely images, or a combination of both. == Links == * [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice subreddit] * [https://cyoaarchive.com/main Allsync] – An archive of almost all static CYOAs"
wikitext
text/x-wiki
'''Static CYOAs''' are [[CYOA]]s that are comprised of purely text, purely images, or a combination of both.
== Links ==
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice subreddit]
* [https://cyoaarchive.com/main Allsync] – An archive of almost all static CYOAs
1bed474fb9fd0a56636b9664e43fabfa36b40045
File:0a start.png
6
49
156
2023-06-10T00:49:10Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Interactive CYOA Tutorial
0
22
157
148
2023-06-10T00:52:43Z
Pasadena
2
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you reset the options.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
2aa425c2ab8c3dd111ba505bcb5710eccd68af1e
158
157
2023-06-10T00:53:25Z
Pasadena
2
/* Object Width */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you reset the options.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
5e6e403391e3686b1cdcb1f38a209f8d56e612d3
159
158
2023-06-10T00:53:55Z
Pasadena
2
/* Launching the creator */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
e7a4559990e3e305f3065ad8f8e854394e951c22
160
159
2023-06-10T00:55:37Z
Pasadena
2
/* Cloning Rows */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Row Title ====
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
f611343615f552ebdddc3bbc6ba240f0d38793be
164
160
2023-06-10T01:03:16Z
Pasadena
2
/* Row Title */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
86ec823f9071dbafe6d7f0e36c47c36861060fd1
165
164
2023-06-10T01:05:58Z
Pasadena
2
/* Launching the creator */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
79f7255cf4017bbf0db25669153ec3aa74140c8b
166
165
2023-06-10T01:06:47Z
Pasadena
2
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
61c81ed1919798f518e3e60dac591094a279d792
168
166
2023-06-10T01:11:18Z
Pasadena
2
/* Row Text */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
e497d490e46f85026b12e468653c89ce7873d696
169
168
2023-06-10T01:12:10Z
Pasadena
2
/* Row Text */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Uploading Local Files ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
c12c2f9fa7f7e8a5a127758ba3e771f4160211fa
170
169
2023-06-10T01:17:23Z
Pasadena
2
/* Uploading Local Files */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image
|}
==== Local Images ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
918b7a8fa4ec1bc012e8f6c5f762f137a191498a
171
170
2023-06-10T01:18:33Z
Pasadena
2
/* Local vs External Images */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== Uploading from Links ====
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
3c4287be78eb41071966e4d27c0f6774774ec26b
172
171
2023-06-10T01:20:44Z
Pasadena
2
/* Uploading from Links */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
598bc4d95f12bb16bc08148f95e370cf52c5c556
173
172
2023-06-10T01:26:21Z
Pasadena
2
/* Important Advice */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished. The reason is twofold: (1) because as you make your CYOA you might be tempted to make private styling choices, which is not advisable, and (2) excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options. So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either (a) go to each of those sections for each change you make, and change the private styling, or (b) turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
b140f48f58c3b75d17b7702b66a4357dec388949
174
173
2023-06-10T01:27:42Z
Pasadena
2
/* Important Advice */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
=== Custom HTML and CSS ===
=== Custom Javascript ===
8839cd6034d3a9777c1f0ee3220349bdb5f6bc9d
175
174
2023-06-10T01:28:52Z
Pasadena
2
/* Use URLs for Images */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
114de56f353714c706876976c1f11ac98a8f35fa
176
175
2023-06-10T01:30:00Z
Pasadena
2
/* Local vs External Images */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
There will be a way to dynamically change this amount, but we’ll come back to that later.
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
f626e83d476f4001a3d697b79add0af147e6eb99
179
176
2023-06-10T01:49:09Z
Pasadena
2
/* Allowed Choices */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later.
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
9113a93215a3aaa84b9beef4b47aafba0440dcd6
180
179
2023-06-10T01:49:55Z
Pasadena
2
/* Allowed Choices */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices]].
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
908ca7d39d337b675f23b753fabd14d5d64b582b
181
180
2023-06-10T01:50:07Z
Pasadena
2
/* Allowed Choices */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
f2dbdefca606d2112a50cbc7eda71abaa8d3e562
183
181
2023-06-10T01:54:37Z
Pasadena
2
/* Selected Choices (Input) */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
bbc32cd9b368d4beeaa5018eabfa1954e6212686
184
183
2023-06-10T01:55:20Z
Pasadena
2
/* Selected Choices (Input) */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0. '''You should not change this value unless you know what you're doing.'''
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
31870c313c35c29040e29f470ca5eadbf7a4f06f
185
184
2023-06-10T01:55:31Z
Pasadena
2
/* Selected Choices (Input) */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and none is selected then something has gone wrong, and you can clear it by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
16dd7c5e73aa5c14633f3b9db7bec7799dc90679
186
185
2023-06-10T01:56:24Z
Pasadena
2
/* Selected Choices (Input) */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices ===
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
60e111b82ef27fac0de1d972e0572deb6381f147
187
186
2023-06-10T01:58:10Z
Pasadena
2
/* Choices */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
163e51b07740a3a8d6a3dffffe1a54a7959fe660
188
187
2023-06-10T01:58:33Z
Pasadena
2
/* Choices / Objects */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
5bcde9447b2f74343d27db126952ca674bd684cf
190
188
2023-06-10T02:02:31Z
Pasadena
2
/* Objects Per Row */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|link=|The option]]</div>
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
62d0e9871934fa924f421bb7c302444415129c2d
192
190
2023-06-10T02:11:58Z
Pasadena
2
/* Objects Per Row */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
<gallery mode="slideshow">
Example.jpg|Caption1
Example.jpg|Caption2
</gallery>
===== 'Row' Objects per Row =====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
96d5ed1c6eb0230f25d307c7d5232e4a493738c3
193
192
2023-06-10T02:12:53Z
Pasadena
2
/* Useful links */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
==== Other tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
<gallery mode="slideshow">
Example.jpg|Caption1
Example.jpg|Caption2
</gallery>
===== 'Row' Objects per Row =====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
faee8daec6b48ebcb7687ed43ebba3ed227c3339
194
193
2023-06-10T02:13:07Z
Pasadena
2
/* Other tutorials */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
<gallery mode="slideshow">
Example.jpg|Caption1
Example.jpg|Caption2
</gallery>
===== 'Row' Objects per Row =====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
6a2aa35356f3346cd8a59f8a5daf5b83e5fbd436
198
194
2023-06-10T02:20:01Z
Pasadena
2
/* Extending your CYOA */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA], [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static) – If you make a CYOA, feel free to showcase it here!
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
<gallery mode="slideshow">
Example.jpg|Caption1
Example.jpg|Caption2
</gallery>
===== 'Row' Objects per Row =====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
4eb6e73212dc05155211b6c60a120fc40df38541
199
198
2023-06-10T02:21:06Z
Pasadena
2
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
<gallery mode="slideshow">
Example.jpg|Caption1
Example.jpg|Caption2
</gallery>
===== 'Row' Objects per Row =====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
b38da9d77d4eeda4053d84c815e573ef5549aa2c
200
199
2023-06-10T02:22:46Z
Pasadena
2
/* Other Tutorials */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
<gallery mode="slideshow">
Example.jpg|Caption1
Example.jpg|Caption2
</gallery>
===== 'Row' Objects per Row =====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
ebc1f6b152ec93d873445f948b057ccfee25c73a
201
200
2023-06-10T02:23:31Z
Pasadena
2
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
<gallery mode="slideshow">
Example.jpg|Caption1
Example.jpg|Caption2
</gallery>
===== 'Row' Objects per Row =====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
f9b78f993d2432bb1cc625d1dbdd4e171a9dc285
File:6 edit row.png
6
50
161
2023-06-10T00:58:04Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:7 edit row.gif
6
51
162
2023-06-10T01:00:19Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:8 row title.gif
6
52
163
2023-06-10T01:03:07Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:9 row text.gif
6
53
167
2023-06-10T01:11:03Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
MeanDelay
0
54
177
2023-06-10T01:32:18Z
Pasadena
2
Created page with "'''MeanDelay''' is the creator of the [[Interactive CYOA Creator]]. == Links == * [https://www.reddit.com/user/MeanDelay/ u/MeanDelay] * [https://meandelay.itch.io/ itch.io (store)], [https://itch.io/profile/meandelay itch.io (profile)]"
wikitext
text/x-wiki
'''MeanDelay''' is the creator of the [[Interactive CYOA Creator]].
== Links ==
* [https://www.reddit.com/user/MeanDelay/ u/MeanDelay]
* [https://meandelay.itch.io/ itch.io (store)], [https://itch.io/profile/meandelay itch.io (profile)]
fe152475b5a8880a7c619bdff4cea00e6a5c8785
File:10 allowed choices.png
6
55
178
2023-06-10T01:35:13Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:11 selected choices.gif
6
56
182
2023-06-10T01:54:31Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:12 objects per row.png
6
57
189
2023-06-10T01:59:21Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
CYOA Wiki:Editing
4
40
191
143
2023-06-10T02:06:23Z
Pasadena
2
wikitext
text/x-wiki
== Images ==
=== Image overflowing ===
If an image like a gif is overflowing the screen, simply wrap the image in this class like so.
<pre>
<div class="res-img">
[[File:image.gif]]
</div>
<div class="res-img">[[File:image.gif]]</div>
</pre>
=== Get rid of image zoom and link ===
Simply add <pre>|link=</pre> to the end, making sure that the link is empty.
<pre>
<div class="res-img">
[[File:image.gif|link=]]
</div>
<div class="res-img">[[File:image.gif|link=]]</div>
</pre>
=== Framed images overflowing ===
Simply add 'center' to them.
<pre>
<div class="res-img">[[File:image.png|frame|center|link=|The caption]]</div>
</pre>
f0c83ce05296951de23d11ab508a4aa9c10e78cf
PowerCreator
0
58
195
2023-06-10T02:15:11Z
Pasadena
2
Redirected page to [[MythicLegendary]]
wikitext
text/x-wiki
#REDIRECT [[MythicLegendary]]
8b27c04fec3a2429a6c4c088bc2a1c873ec45491
PowerCreatorAnon
0
59
196
2023-06-10T02:15:27Z
Pasadena
2
Redirected page to [[MythicLegendary]]
wikitext
text/x-wiki
#REDIRECT [[MythicLegendary]]
8b27c04fec3a2429a6c4c088bc2a1c873ec45491
MythicLegendary
0
20
197
71
2023-06-10T02:16:06Z
Pasadena
2
/* Static */
wikitext
text/x-wiki
[[Category:Authors]]
[[Category:Static Authors]]
[[Category:Interactive Authors]]
{{Author
|name=MythicLegendary
|image=
|aliases=PowerCreator, PowerCreatorAnon
|reddit=[https://www.reddit.com/user/MythicLegendary u/MythicLegendary]
|discord=
|youtube=
|github=
|email=
|website=
|cyoa_index=
|other_social_media=
}}
MythicLegendary is an author who creates [[CYOA]]s.
== CYOAs ==
=== Static ===
MythicLegendary has made the following [[Static CYOA]]s:
* [[Forced Basement Vacation CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FForced%20Basement%20Vacation%20CYOA link])
* [[Living God CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FLiving%20God%20CYOA link])
* [[Power Creator#New Pantheon|Power Creator - New Pantheon CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FPower%20Creator%20-%20New%20Pantheon%20CYOA link])
* [[Power Creator|Power Creator CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FPower%20Creator%20CYOA link])
* [[Power Creator#Xenon|Power Creator Xenon CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FPower%20Creator%20Xenon%20CYOA link])
* [[Power Creator#Waifu|Power Creator Waifu]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FPowerCreator%20Waifu%20CYOA link])
* [[Urban Phantom CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs%2FUrban%20Phantom%20CYOA link])
* [[Essentials Meta CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?dir=undefined&path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs&openfile=8832 link])
* [[Metachain CYOA]] ([https://cyoa.allsync.com/s/owWor64yLTngDk3?dir=undefined&path=%2FCYOA%20Creators%2C%20Authors%2FPowerCreator%27s%20aka%20MythicLegendary%27s%20CYOAs&openfile=8828 link])
==== Incomplete/WIP ====
MythicLegendary is rumoured to be working on the following:
* [[CYOA Wiki Link]] ([https://external.site/cyoa link])
e8e40f3a2360ce97774d63b8b733797243d7584c
File:13 1 per row.png
6
60
202
2023-06-10T02:26:06Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:14 3 per row.png
6
61
203
2023-06-10T02:26:40Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:15 4 per row.png
6
62
204
2023-06-10T02:26:57Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
Interactive CYOA Tutorial
0
22
205
201
2023-06-10T02:28:13Z
Pasadena
2
/* Objects Per Row */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
<gallery mode="slideshow">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
094365d3dd6634403f7f7e4c5b62e0447efe6df0
206
205
2023-06-10T02:29:39Z
Pasadena
2
/* Objects Per Row */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
0f3f950e294f4d48fd5bf19ce82d2b13e2a502c8
207
206
2023-06-10T05:15:15Z
Pasadena
2
/* Non-Activatable */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many that is currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
306a1246b1fe92b63f38dbc237f65d4920e11de1
208
207
2023-06-10T05:15:44Z
Pasadena
2
/* Selected Choices (Input) */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
5669f78ddaecb5f309be2cb6955eb707f072bf41
209
208
2023-06-10T05:17:47Z
Pasadena
2
/* Non-Activatable */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
0dc1f90c81168b7bf8cdb4eeb042b74a773285d9
210
209
2023-06-15T01:58:15Z
Pasadena
2
/* IntCYOAEnhancer script */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see here for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and add the following line underneath <pre>// @match https://*.neocities.org/*</pre>:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
3cae9b49781928d40c900a65c01e34a0d4c45354
211
210
2023-06-15T01:59:57Z
Pasadena
2
/* IntCYOAEnhancer script */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and add the following line underneath
<pre>// @match https://*.neocities.org/*</pre>
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
9ff5ee699446a062cb314680c8ba96717bd968ee
212
211
2023-06-15T02:00:20Z
Pasadena
2
/* Github and other sites compatibility */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
1742e6f58e5b183b1a1b2494ea905bec5109fe78
213
212
2023-06-15T02:08:10Z
Pasadena
2
/* Installation */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list:
{| class="wikitable"
|+ User script managers by platform
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| Example || Example || Example
|-
| '''Application''' || Example || Example || Example
|-
| '''Application''' || Example || Example || Example
|-
| '''Application''' || Example || Example || Example
|-
| '''Application''' || Example || Example || Example
|-
| '''Application''' || Example || Example || Example
|-
| '''Application''' || Example || Example || Example
|-
| '''Application''' || Example || Example || Example
|-
| '''Application''' || Example || Example || Example
|-
| '''Application''' || Example || Example || Example
|-
| '''Application''' || Example || Example || Example
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
a216dd077b7e7a631bd52bbf06ee321cb900db86
214
213
2023-06-15T02:13:50Z
Pasadena
2
/* Installation */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list:
{| class="wikitable sortable"
|+ User script managers by platform
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || Example || Example
|-
| '''Opera''' || Example || Example || Example
|-
| '''Maxthon''' || Example || Example || Example
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || Example || Example || Example
|-
| '''UC''' || Example || Example || Example
|-
| '''Kiwi''' || Example || Example || Example
|-
| '''XBrowser''' || Example || Example || Example
|-
| '''Gear''' || Example || Example || Example
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
8a023d205fe6730b4eb9711e404c9cdd4b076191
215
214
2023-06-15T02:18:50Z
Pasadena
2
/* Installation */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
116382e4af4ba1dcdbe8ca22ca5bc4de703e9ae7
216
215
2023-06-15T02:19:26Z
Pasadena
2
/* Installation */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
=== Custom Javascript ===
2178ce4070a2158c5b441895ecfdd91c531b17f4
217
216
2023-06-15T02:41:43Z
Pasadena
2
/* Custom HTML and CSS */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
If you learn HTML and CSS, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Text Formatting ====
To format text within the CYOA, use these HTML tags:
{| class="wikitable"
|-
! Example !! HTML
|-
| <h1>Heading 1</h1> || <pre><h1>Heading 1</h1></pre>
|-
| ''Italics'' || Example
|-
| Example || Example
|-
| Example || Example
|-
| Example || Example
|-
| Example || Example
|-
| Example || Example
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive)
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Can be hard to follow)
=== Custom Javascript ===
60446959ee7ec749928c50e10f0bba256b9b9984
218
217
2023-06-15T02:44:29Z
Pasadena
2
/* Text Formatting */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
If you learn HTML and CSS, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Text Formatting ====
To format text within the CYOA, use these HTML tags:
{| class="wikitable"
|-
! Example !! HTML
|-
| <h1>Heading 1</h1> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| ''Italics'' || Example
|-
| Example || Example
|-
| Example || Example
|-
| Example || Example
|-
| Example || Example
|-
| Example || Example
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive)
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Can be hard to follow)
=== Custom Javascript ===
a0661d240ea82953f859c129e55de83da87724db
219
218
2023-06-15T02:51:12Z
Pasadena
2
/* Custom Javascript */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML and CSS ===
If you learn HTML and CSS, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Text Formatting ====
To format text within the CYOA, use these HTML tags:
{| class="wikitable"
|-
! Example !! HTML
|-
| <h1>Heading 1</h1> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| ''Italics'' || Example
|-
| Example || Example
|-
| Example || Example
|-
| Example || Example
|-
| Example || Example
|-
| Example || Example
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive)
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Can be hard to follow)
3c24d565f3f403c7e55b6efbf8b4858a4142bd74
220
219
2023-06-15T02:52:26Z
Pasadena
2
/* Custom HTML and CSS */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Text Formatting ====
To format text within the CYOA, use these HTML tags:
{| class="wikitable"
|-
! Example !! HTML
|-
| <h1>Heading 1</h1> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| ''Italics'' || Example
|-
| Example || Example
|-
| Example || Example
|-
| Example || Example
|-
| Example || Example
|-
| Example || Example
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive)
'''CSS:'''
*
'''Javascript:'''
*
'''All''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Can be hard to follow)
ad6d8775a496af9733db5271cf281866b94682e0
221
220
2023-06-15T02:59:52Z
Pasadena
2
/* Text Formatting */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Text Formatting ====
To format text within the CYOA, use these HTML tags:
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| ''Italics'' || Example
|-
| Example || Example
|-
| Example || Example
|-
| Example || Example
|-
| Example || Example
|-
| Example || Example
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive)
'''CSS:'''
*
'''Javascript:'''
*
'''All''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Can be hard to follow)
698f3c7d5b20f49255763984de58dcdb8ab47b11
222
221
2023-06-15T03:03:21Z
Pasadena
2
/* Text Formatting */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Text Formatting ====
To format text within the CYOA, use these HTML tags:
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|-
| Example || <syntaxhighlight lang="html"><tag>text</tag></syntaxhighlight>
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive)
'''CSS:'''
*
'''Javascript:'''
*
'''All''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Can be hard to follow)
f03658301fcd76f9e197e48d8c5f9e4395e3b648
223
222
2023-06-15T03:13:11Z
Pasadena
2
/* Text Formatting */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Text Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== General Formatting =====
{| class="wikitable"
|-
! Example !! HTML
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight>
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight>
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight>
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight>
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive)
'''CSS:'''
*
'''Javascript:'''
*
'''All''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Can be hard to follow)
2e74f3c810ba3914e6a8dd55b8cfdffef83fc81b
224
223
2023-06-15T03:16:35Z
Pasadena
2
/* Learning Resources */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Text Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== General Formatting =====
{| class="wikitable"
|-
! Example !! HTML
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight>
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight>
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight>
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight>
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive)
'''CSS:'''
*
'''Javascript:'''
*
'''All''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Comprehensive, but can be hard to follow for beginners)
cd3bf0f0897e06888586c40038339d42a7ef9fad
225
224
2023-06-15T03:17:43Z
Pasadena
2
/* Learning Resources */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Text Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== General Formatting =====
{| class="wikitable"
|-
! Example !! HTML
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight>
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight>
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight>
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight>
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
'''CSS:'''
*
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
43d4eec0f62e1c0da169eae944c61a65269446e1
226
225
2023-06-15T03:18:21Z
Pasadena
2
/* Custom HTML, CSS, and Javascript */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Text Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== General Formatting =====
{| class="wikitable"
|-
! Example !! HTML
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight>
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight>
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight>
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight>
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
'''CSS:'''
*
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
1d5f9473d27947fc323d25fd0afd426c5beda1a7
227
226
2023-06-15T03:18:53Z
Pasadena
2
/* Text Formatting */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight>
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight>
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight>
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight>
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
'''CSS:'''
*
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
35781b3dfbfcbe8901904b7b71cafd4e5b25c304
228
227
2023-06-15T03:23:23Z
Pasadena
2
/* Text Formatting */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight>
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight>
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
'''CSS:'''
*
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
1dd9a9482b6224d87cf2ea5146fc38864379b59c
229
228
2023-06-15T03:24:46Z
Pasadena
2
/* Text Formatting */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
'''CSS:'''
*
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
45a6e013ac8d5b57035e20162408fd77b6b86e20
230
229
2023-06-15T03:25:27Z
Pasadena
2
/* Learning Resources */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
'''CSS:'''
*
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
87abb71ac8f27bdd9bcb9a736d9e848adc023e61
231
230
2023-06-15T03:26:38Z
Pasadena
2
/* Learning Resources */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
07e15a42b943b86f0df7b180348f9c336a1f8eda
237
231
2023-06-15T03:59:07Z
Pasadena
2
/* Learning Resources */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
2b992d31c325a406502af3c1048f88ee221a3fd2
238
237
2023-06-15T04:00:20Z
Pasadena
2
/* Other Tutorials */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered here
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
96593862c8b3c70200a8cdb89150310441a44a58
239
238
2023-06-15T04:01:07Z
Pasadena
2
/* Other Tutorials */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
a3e0c253073ca5ee618571a3d3676bbe22d89704
240
239
2023-06-15T04:02:01Z
Pasadena
2
/* Useful links */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== The Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
a459e2a2bb970ac2a884ef5588ad1f64e34f87e7
241
240
2023-06-15T04:06:43Z
Pasadena
2
/* The Creator */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* Adds download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Keeps track of the game state, meaning if you reload on accident you can keep your choices
* Overview of selected choices and sections
* Option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Allows for downloading project data
* Cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
36ee5bce5ff8580575483dffc68d78680e860d75
242
241
2023-06-15T04:08:02Z
Pasadena
2
/* IntCYOAEnhancer script */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicated (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Download option for <code>project.json</code>
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
9fe3945dc3a87b9d9a81719885006493a8f15593
243
242
2023-06-15T04:08:18Z
Pasadena
2
/* IntCYOAEnhancer script */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* Download option for <code>project.json</code>
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
600f239b8b9eeab6c9a3e3d6ca0735742add151d
244
243
2023-06-15T04:08:43Z
Pasadena
2
/* IntCYOAEnhancer script */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
2b07937460ae3a8d3ad162569f3c43113d34a7f6
245
244
2023-06-15T04:10:21Z
Pasadena
2
/* Github and other sites compatibility */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
63838f65cf50bcd89e295a81c0493109381bbabb
246
245
2023-06-15T04:14:45Z
Pasadena
2
/* Allowed Choices */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
70ae92f06544dc75bac3aeb0fe59c8669beb760c
248
246
2023-06-15T04:19:11Z
Pasadena
2
/* Allowed Choices */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes to be selected.
From the Official Tutorial:
<q>The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.</q>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
14b7940314a412fc32c29887ddd4eac56294d3c9
250
248
2023-06-15T04:27:02Z
Pasadena
2
/* Non-Activatable? */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the Official Tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
d8b74191a20a52729dfdd44268db90112175349d
251
250
2023-06-15T04:27:58Z
Pasadena
2
/* Non-Activatable? */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
Explanation: More options for all choices in that row
“Choices will all be ‘Template Top’ and Row Width” – self-explanatory. will force all images to display above choices, and have all choices take up the same row width.
“Remove the text of choices” - self-explanatory too. removes the body text, but keeps the title and images.
From the Official Tutorial:
<q>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</q>
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
1f4836aad8823858372ec1305f1239addfa86709
Pasadena
0
14
232
74
2023-06-15T03:27:55Z
Pasadena
2
Protected "[[Pasadena]]" ([Edit=Allow only logged in users] (indefinite) [Move=Allow only logged in users] (indefinite))
wikitext
text/x-wiki
[[Category:Authors]]
[[Category:Interactive Authors]]
{{Template:Author
|name=Pasadena
|image=
|aliases=upasadena<br />_pasadena
|reddit=[https://www.reddit.com/user/_pasadena /u/_pasadena]
|discord=Pasadena#9851
|youtube=[https://www.youtube.com/channel/UCtoO83Kj7St2rcD2ygtvlTw @_pasadena]
|github=https://github.com/upasadena
|email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com]
|website=https://upasadena.github.io/
|cyoa_index=https://upasadena.github.io/cyoas/
|other_social_media=
}}
Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s.
== CYOAs ==
=== Interactive ===
Pasadena has made the following Interactive CYOAs:
* [[Living God CYOA]] ([https://upasadena.github.io/cyoas/living-god/ link])
* [[Ultimate God CYOA]] ([https://upasadena.github.io/cyoas/ultimate-god/ link])
* [[Worm V3 Revised CYOA]] ([https://upasadena.github.io/cyoas/worm/v3/ link])
* [[JRPG Traitor CYOA]] ([https://upasadena.github.io/cyoas/jrpg-traitor/ link])
==== Incomplete/WIP ====
* [[Awakened God CYOA]] ([https://upasadena.github.io/cyoas/awakened-god/ link])
4982b5556268737d09638d561e43ca86b9da848c
233
232
2023-06-15T03:28:11Z
Pasadena
2
Changed protection settings for "[[Pasadena]]" ([Edit=Allow only logged in users] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
[[Category:Authors]]
[[Category:Interactive Authors]]
{{Template:Author
|name=Pasadena
|image=
|aliases=upasadena<br />_pasadena
|reddit=[https://www.reddit.com/user/_pasadena /u/_pasadena]
|discord=Pasadena#9851
|youtube=[https://www.youtube.com/channel/UCtoO83Kj7St2rcD2ygtvlTw @_pasadena]
|github=https://github.com/upasadena
|email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com]
|website=https://upasadena.github.io/
|cyoa_index=https://upasadena.github.io/cyoas/
|other_social_media=
}}
Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s.
== CYOAs ==
=== Interactive ===
Pasadena has made the following Interactive CYOAs:
* [[Living God CYOA]] ([https://upasadena.github.io/cyoas/living-god/ link])
* [[Ultimate God CYOA]] ([https://upasadena.github.io/cyoas/ultimate-god/ link])
* [[Worm V3 Revised CYOA]] ([https://upasadena.github.io/cyoas/worm/v3/ link])
* [[JRPG Traitor CYOA]] ([https://upasadena.github.io/cyoas/jrpg-traitor/ link])
==== Incomplete/WIP ====
* [[Awakened God CYOA]] ([https://upasadena.github.io/cyoas/awakened-god/ link])
4982b5556268737d09638d561e43ca86b9da848c
234
233
2023-06-15T03:28:29Z
Pasadena
2
Changed protection settings for "[[Pasadena]]" ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
[[Category:Authors]]
[[Category:Interactive Authors]]
{{Template:Author
|name=Pasadena
|image=
|aliases=upasadena<br />_pasadena
|reddit=[https://www.reddit.com/user/_pasadena /u/_pasadena]
|discord=Pasadena#9851
|youtube=[https://www.youtube.com/channel/UCtoO83Kj7St2rcD2ygtvlTw @_pasadena]
|github=https://github.com/upasadena
|email=[mailto:underscore.pasadena@gmail.com underscore.pasadena@gmail.com]
|website=https://upasadena.github.io/
|cyoa_index=https://upasadena.github.io/cyoas/
|other_social_media=
}}
Pasadena is an author who specializes in converting [[Static CYOA]]s into [[Interactive CYOA]]s.
== CYOAs ==
=== Interactive ===
Pasadena has made the following Interactive CYOAs:
* [[Living God CYOA]] ([https://upasadena.github.io/cyoas/living-god/ link])
* [[Ultimate God CYOA]] ([https://upasadena.github.io/cyoas/ultimate-god/ link])
* [[Worm V3 Revised CYOA]] ([https://upasadena.github.io/cyoas/worm/v3/ link])
* [[JRPG Traitor CYOA]] ([https://upasadena.github.io/cyoas/jrpg-traitor/ link])
==== Incomplete/WIP ====
* [[Awakened God CYOA]] ([https://upasadena.github.io/cyoas/awakened-god/ link])
4982b5556268737d09638d561e43ca86b9da848c
Main Page
0
1
235
137
2023-06-15T03:29:58Z
Pasadena
2
/* Interactive */
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** By medium:
*** [[:Category:Static CYOAs|Static CYOAs]]
*** [[:Category:Interactive CYOAs|Interactive CYOAs]]
** By category:
*** [[:Category:Fantasy CYOAs|Fantasy CYOAs]]
*** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc
*** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc
*** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc
*** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc
*** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]]
*** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
* [[:Category:Lore|Lore]]
* [[:Category:Characters|Characters]]
* [[:Category:Locations|Locations]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
* [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources]
* [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs)
== Tutorials ==
=== Static ===
* [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide]
* [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info]
* [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials]
=== Interactive ===
* [[Interactive CYOA Tutorial]] (WIP) (A complete and comprehensive guide to creating [[Interactive CYOA]]s.
* [https://imgur.com/a/QV36Ix8 Neocities Setup #1]
* [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* [[CYOA_Wiki:Manual of Style|Manual of Style]]
* [[CYOA_Wiki:Editing|Editing]] for wiki-specific editing tips
* [[:Category:Templates|Templates]] and [[:Special:UncategorizedTemplates|Uncategorized Templates]]
* [[Special:Categories|Categories]]
* Upload images at [[Special:Upload]]
* Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]]
fbf47978fc57e753d8f23e9b38ebc5e8b467d1f5
236
235
2023-06-15T03:30:09Z
Pasadena
2
/* Interactive */
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** By medium:
*** [[:Category:Static CYOAs|Static CYOAs]]
*** [[:Category:Interactive CYOAs|Interactive CYOAs]]
** By category:
*** [[:Category:Fantasy CYOAs|Fantasy CYOAs]]
*** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc
*** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc
*** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc
*** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc
*** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]]
*** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
* [[:Category:Lore|Lore]]
* [[:Category:Characters|Characters]]
* [[:Category:Locations|Locations]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
* [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources]
* [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs)
== Tutorials ==
=== Static ===
* [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide]
* [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info]
* [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials]
=== Interactive ===
* [[Interactive CYOA Tutorial]] (WIP) (A complete and comprehensive guide to creating [[Interactive CYOA]]s)
* [https://imgur.com/a/QV36Ix8 Neocities Setup #1]
* [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* [[CYOA_Wiki:Manual of Style|Manual of Style]]
* [[CYOA_Wiki:Editing|Editing]] for wiki-specific editing tips
* [[:Category:Templates|Templates]] and [[:Special:UncategorizedTemplates|Uncategorized Templates]]
* [[Special:Categories|Categories]]
* Upload images at [[Special:Upload]]
* Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]]
0baf894ae450310fa0deec59667f1f416d871aa0
File:10b allowed choices.gif
6
63
247
2023-06-15T04:17:36Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:16 non activatable.gif
6
64
249
2023-06-15T04:26:44Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
CYOA Wiki:Editing
4
40
252
191
2023-06-15T04:33:29Z
Pasadena
2
wikitext
text/x-wiki
== Text ==
=== Quotes ===
Quotes can be added like so:
<pre>
Quote caption:
:''Quote text''
</pre>
== Images ==
=== Image overflowing ===
If an image like a gif is overflowing the screen, simply wrap the image in this class like so.
<pre>
<div class="res-img">
[[File:image.gif]]
</div>
<div class="res-img">[[File:image.gif]]</div>
</pre>
=== Get rid of image zoom and link ===
Simply add <pre>|link=</pre> to the end, making sure that the link is empty.
<pre>
<div class="res-img">
[[File:image.gif|link=]]
</div>
<div class="res-img">[[File:image.gif|link=]]</div>
</pre>
=== Framed images overflowing ===
Simply add 'center' to them.
<pre>
<div class="res-img">[[File:image.png|frame|center|link=|The caption]]</div>
</pre>
cd5c389c0e59ed3e24a04b000fecbf7d02c63b6b
Interactive CYOA Tutorial
0
22
253
251
2023-06-15T04:36:56Z
Pasadena
2
/* Selected Choices? (Switch) */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the Official Tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
5dd674396d16cb3070bdfa32b3a75df50ea7a6f6
254
253
2023-06-15T04:38:26Z
Pasadena
2
/* Selected Choices? (Switch) */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
'''OPEN IMAGE-CYOA CREATOR:''' This is where you create interactive CYOAs.
'''OPEN IMAGE-CYOA VIEWER:''' This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
'''HELP AND INSTRUCTIONS:''' A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
682d954dc2647a9949bdb23cc8b149cedb5beec5
255
254
2023-06-15T04:41:22Z
Pasadena
2
/* Launching the creator */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== OPEN IMAGE-CYOA CREATOR ====
This is where you create interactive CYOAs.
==== OPEN IMAGE-CYOA VIEWER ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
==== HELP AND INSTRUCTIONS ====
A small tutorial made by the author themself. It should be redundant with this tutorial.
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
16327ee6fef3420c2a05e8ee25d3720cc8fa8eb3
257
255
2023-06-15T05:25:12Z
Pasadena
2
/* Launching the creator */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
a941951b37036b3a46b22cd71a0c2a27e7111425
258
257
2023-06-15T05:30:21Z
Pasadena
2
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Static Background ===
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
d8004f6422bb581e6192a9e3e01ca3783965124f
259
258
2023-06-15T05:32:52Z
Pasadena
2
/* Hiding Rows via Selected Choice */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by agregen is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== Github and other sites compatibility ====
This script is on by default for all neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com Github] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Static Background ===
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
=== Custom HTML, CSS, and Javascript ===
If you learn HTML, CSS, and/or Javascript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''Javascript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and Javascript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
0318b382ce2ee4aeeacb3ddd5eac99828f109d22
260
259
2023-06-15T05:43:51Z
Pasadena
2
Fixes
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Static Background ===
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
6f6b681900b14c8fa51b4456335e1c8df530604a
261
260
2023-06-15T05:47:19Z
Pasadena
2
/* Static Background */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
ecd395abef653dcd207f090ab063656841aa2d79
262
261
2023-06-15T05:51:16Z
Pasadena
2
/* Backgrounds */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
07d771add6f41f7309132209526e7c7a4522264c
263
262
2023-06-15T05:54:47Z
Pasadena
2
/* Static Background */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<!-- image -->
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><nowiki><div id=app></div></nowiki></code> line.
<syntaxhighlight lang="html>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
de9fd66171beef1c94a0757923e3e0311a000355
264
263
2023-06-15T05:57:18Z
Pasadena
2
/* Static Background */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<!-- image -->
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><nowiki><div id=app></div></nowiki></code> line.
<syntaxhighlight lang="html>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
5219d8f3cdb2ca701039fef5b666d7bd7dda8555
265
264
2023-06-15T06:00:28Z
Pasadena
2
/* Static Background */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:image.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></syntaxhighlight></nowiki></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
8c719ae2b9f6e05925e012e3c0197ed0f2220ce7
268
265
2023-06-15T06:06:37Z
Pasadena
2
/* Static Background */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background_compressed.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
66020f871a03878d437222f710fa239482354d5e
269
268
2023-06-15T06:07:01Z
Pasadena
2
/* Static Background */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| '''Bold''' || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| ''Italics'' || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| '''''Bold and Italics''''' || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| <sup>Superscript</sup> || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| <sub>Subscript</sub> || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| <big>Big</big> || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| <small>Small</small> || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| <u>Underlined</u> || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| <mark>Highlighted</mark> || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| <del>Deleted</del> || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| <ins>Inserted</ins> || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
7863233c0b955598f8e0ebece681ed3d20eefcba
270
269
2023-06-15T06:10:19Z
Pasadena
2
/* Text Formatting */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| This is '''Bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| This is ''Italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| This is '''''Bold and Italicized''''' text || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| This is <sup>Superscript</sup> text || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| This is <sub>Subscript</sub> text || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| This is <big>Big</big> text || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| This is <small>Small</small> text || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| This is <u>Underlined</u> text || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| This is <mark>Highlighted</mark> text || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| This is <del>Deleted</del> text || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| This is <del>Insreted</del><ins>Inserted</ins> text || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
884a2057d23b4bac1b63f262047dedcd141bd9fb
271
270
2023-06-15T06:11:12Z
Pasadena
2
/* Text Formatting */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>Bold and Italics<i/></b></syntaxhighlight>
|-
| This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>Superscript</sup></syntaxhighlight>
|-
| This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>Subscript</sub></syntaxhighlight>
|-
| This is <big>big</big> text || <syntaxhighlight lang="html"><big>Big</big></syntaxhighlight>
|-
| This is <small>small</small> text || <syntaxhighlight lang="html"><small>Small</small></syntaxhighlight>
|-
| This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>Underlined</u></syntaxhighlight>
|-
| This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>Highlighted</mark></syntaxhighlight>
|-
| This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>Deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| This is <del>insreted</del><ins>Inserted</ins> text || <syntaxhighlight lang="html"><ins>Inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
===== Lists =====
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
1ef4befdc2e1c529f8d3e02be6e686764cb36495
272
271
2023-06-15T06:14:15Z
Pasadena
2
/* Text Formatting */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
TODO
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight>
|-
| This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight>
|-
| This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight>
|-
| This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight>
|-
| This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight>
|-
| This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight>
|-
| This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight>
|-
| This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
===== Lists =====
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
c60e7154bb2b61fb23670d82ca3cb900c80a09ba
273
272
2023-06-15T06:51:05Z
Pasadena
2
/* 'Row' Objects per Row */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>).
Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once.
If you have changed an individual Choice's width, then setting back to Row resets it back to the default.
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight>
|-
| This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight>
|-
| This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight>
|-
| This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight>
|-
| This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight>
|-
| This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight>
|-
| This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight>
|-
| This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
===== Lists =====
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
ac2deb50b417ea87a87527a21b0237309bf0e4b7
274
273
2023-06-15T06:51:36Z
Pasadena
2
/* 'Row' Objects per Row */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>).
Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once.
If you have changed an individual Choice's width, then setting back to Row resets it back to the default.
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Placement ====
Templates change the placement of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight>
|-
| This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight>
|-
| This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight>
|-
| This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight>
|-
| This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight>
|-
| This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight>
|-
| This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight>
|-
| This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
===== Lists =====
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
aa78ae6b7e802b8ff6148236e84344697ead972e
275
274
2023-06-15T06:53:35Z
Pasadena
2
/* Templates/Image Placement */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>).
Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once.
If you have changed an individual Choice's width, then setting back to Row resets it back to the default.
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Position ====
Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight>
|-
| This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight>
|-
| This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight>
|-
| This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight>
|-
| This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight>
|-
| This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight>
|-
| This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight>
|-
| This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
===== Lists =====
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
1c2638a8fe2c0e941bed4982687cb1493added22
276
275
2023-06-15T06:54:21Z
Pasadena
2
/* Static Background */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>).
Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once.
If you have changed an individual Choice's width, then setting back to Row resets it back to the default.
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Position ====
Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
See [[#|here]] for more.
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight>
|-
| This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight>
|-
| This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight>
|-
| This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight>
|-
| This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight>
|-
| This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight>
|-
| This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight>
|-
| This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
===== Lists =====
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
9f1b268a300cccb73f7ac157abda99108809c3b6
277
276
2023-06-15T06:56:24Z
Pasadena
2
/* Saving Space */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>).
Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once.
If you have changed an individual Choice's width, then setting back to Row resets it back to the default.
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Position ====
Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
See [[#|here]] for more.
=== Text ===
=== Filters ===
== Extending your CYOA ==
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Making a Static Background ===
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight>
|-
| This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight>
|-
| This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight>
|-
| This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight>
|-
| This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight>
|-
| This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight>
|-
| This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight>
|-
| This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
===== Lists =====
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
21eb2304333799996494919f341545cf876cce26
278
277
2023-06-15T06:59:02Z
Pasadena
2
/* Extending your CYOA */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>).
Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once.
If you have changed an individual Choice's width, then setting back to Row resets it back to the default.
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Position ====
Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
See [[#|here]] for more.
=== Text ===
=== Filters ===
== Extending your CYOA ==
Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more.
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Making a Static Background ===
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight>
|-
| This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight>
|-
| This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight>
|-
| This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight>
|-
| This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight>
|-
| This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight>
|-
| This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight>
|-
| This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
===== Lists =====
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
8824bf3542478cd80ecc7ec565eab7214696af27
279
278
2023-06-15T06:59:30Z
Pasadena
2
/* Static Background */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>).
Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once.
If you have changed an individual Choice's width, then setting back to Row resets it back to the default.
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Position ====
Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
See [[#Making a Static Background]] for more.
=== Text ===
=== Filters ===
== Extending your CYOA ==
Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more.
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Making a Static Background ===
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight>
|-
| This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight>
|-
| This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight>
|-
| This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight>
|-
| This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight>
|-
| This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight>
|-
| This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight>
|-
| This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
===== Lists =====
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
7230e6175c12ca4a46dda1155562cec861cff117
280
279
2023-06-15T07:01:01Z
Pasadena
2
/* Selected Choices? (Switch) */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>).
Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once.
If you have changed an individual Choice's width, then setting back to Row resets it back to the default.
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
<div class="res-img">[[File:image.gif|link=]]</div>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Position ====
Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
See [[#Making a Static Background]] for more.
=== Text ===
=== Filters ===
== Extending your CYOA ==
Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more.
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Making a Static Background ===
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight>
|-
| This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight>
|-
| This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight>
|-
| This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight>
|-
| This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight>
|-
| This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight>
|-
| This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight>
|-
| This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
===== Lists =====
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
929a876a7ef3a6305054ed113b637136dc6f4020
283
280
2023-06-15T07:02:50Z
Pasadena
2
/* Launching the creator */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
This is what a complete CYOA would look like in this menu:
<div class="res-img">[[File:0bb_full_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
<div class="res-img">[[File:0c_viewer.png]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>).
Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once.
If you have changed an individual Choice's width, then setting back to Row resets it back to the default.
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
<div class="res-img">[[File:image.gif|link=]]</div>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Position ====
Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
See [[#Making a Static Background]] for more.
=== Text ===
=== Filters ===
== Extending your CYOA ==
Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more.
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Making a Static Background ===
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight>
|-
| This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight>
|-
| This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight>
|-
| This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight>
|-
| This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight>
|-
| This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight>
|-
| This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight>
|-
| This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
===== Lists =====
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
cea46f3d2ca50ff4ed4971ec9beb3b99749a0d9f
284
283
2023-06-15T07:03:47Z
Pasadena
2
/* Open Image-CYOA Viewer */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
This is what a complete CYOA would look like in this menu:
<div class="res-img">[[File:0bb_full_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
</div><div class="res-img">[[File:0c_viewer.png|link=]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:.png]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>).
Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once.
If you have changed an individual Choice's width, then setting back to Row resets it back to the default.
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
<div class="res-img">[[File:image.gif|link=]]</div>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Position ====
Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
See [[#Making a Static Background]] for more.
=== Text ===
=== Filters ===
== Extending your CYOA ==
Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more.
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Making a Static Background ===
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight>
|-
| This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight>
|-
| This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight>
|-
| This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight>
|-
| This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight>
|-
| This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight>
|-
| This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight>
|-
| This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
===== Lists =====
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
67d22ca0a8e9fdcd247ed6a3fab53c8164ecee9f
285
284
2023-06-15T07:04:02Z
Pasadena
2
/* Help and Instructions */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
This is what a complete CYOA would look like in this menu:
<div class="res-img">[[File:0bb_full_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
</div><div class="res-img">[[File:0c_viewer.png|link=]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:image.png|link=]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>).
Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once.
If you have changed an individual Choice's width, then setting back to Row resets it back to the default.
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
<div class="res-img">[[File:image.gif|link=]]</div>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Position ====
Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
See [[#Making a Static Background]] for more.
=== Text ===
=== Filters ===
== Extending your CYOA ==
Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more.
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Making a Static Background ===
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight>
|-
| This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight>
|-
| This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight>
|-
| This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight>
|-
| This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight>
|-
| This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight>
|-
| This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight>
|-
| This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
===== Lists =====
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
abfa7a75dd418f17cd433bb91824bf9989810d10
287
285
2023-06-15T07:05:54Z
Pasadena
2
/* Help and Instructions */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
This is what a complete CYOA would look like in this menu:
<div class="res-img">[[File:0bb_full_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
</div><div class="res-img">[[File:0c_viewer.png|link=]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:0d_help_and_instructions.gif|link=]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>).
Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once.
If you have changed an individual Choice's width, then setting back to Row resets it back to the default.
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
<div class="res-img">[[File:image.gif|link=]]</div>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Position ====
Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
See [[#Making a Static Background]] for more.
=== Text ===
=== Filters ===
== Extending your CYOA ==
Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more.
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Making a Static Background ===
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight>
|-
| This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight>
|-
| This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight>
|-
| This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight>
|-
| This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight>
|-
| This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight>
|-
| This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight>
|-
| This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
===== Lists =====
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
8f8c0b78f22f162c44e7a6a578fe54e91f95d84e
File:0b creator.png
6
65
256
2023-06-15T04:44:42Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:NA static background.gif
6
66
266
2023-06-15T06:03:21Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
267
266
2023-06-15T06:06:27Z
Pasadena
2
Pasadena uploaded a new version of [[File:NA static background.gif]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:0bb full creator.png
6
67
281
2023-06-15T07:01:37Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:0c viewer.png
6
68
282
2023-06-15T07:02:34Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
File:0d help and instructions.gif
6
69
286
2023-06-15T07:05:47Z
Pasadena
2
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
288
286
2023-06-15T07:09:34Z
Pasadena
2
Pasadena uploaded a new version of [[File:0d help and instructions.gif]]
wikitext
text/x-wiki
da39a3ee5e6b4b0d3255bfef95601890afd80709
MediaWiki:Aboutsite
8
70
289
2023-06-15T07:38:58Z
Pasadena
2
Created page with "{{SITENAME}} About and Rules"
wikitext
text/x-wiki
{{SITENAME}} About and Rules
a8e4f7dc887bc1bea6b742f5e14849d2217a5af9
290
289
2023-06-15T07:39:50Z
Pasadena
2
wikitext
text/x-wiki
<!-- About {{SITENAME}} -->
<!-- {{SITENAME}} About and Rules -->
Rules and Guidelines
94582657bff4d92a916c4bac31cd03286168c5c1
MediaWiki:Disclaimers
8
71
291
2023-06-15T07:40:27Z
Pasadena
2
Created page with "<!-- Disclaimers --> -"
wikitext
text/x-wiki
<!-- Disclaimers -->
-
cb580113e7ccbbb8faaa36131efc9cf55ad4d2f2
292
291
2023-06-15T07:40:41Z
Pasadena
2
Replaced content with "-"
wikitext
text/x-wiki
-
3bc15c8aae3e4124dd409035f32ea2fd6835efc9
MediaWiki:Aboutpage
8
72
293
2023-06-15T07:41:24Z
Pasadena
2
Created page with "<!-- Project:About --> Project:Rules and Guidelines"
wikitext
text/x-wiki
<!-- Project:About -->
Project:Rules and Guidelines
0547ddaf98ae0cc692c88a0fd5d240ff4e96a03e
294
293
2023-06-15T07:41:35Z
Pasadena
2
wikitext
text/x-wiki
Project:Rules and Guidelines
38d6172e25c13318d1ad3e4795738778f3924928
CYOA Wiki:Rules and Guidelines
4
73
295
2023-06-15T07:55:51Z
Pasadena
2
Created page with "These are the rules and guidelines you must follow when contributing to this Wiki. # You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use] # You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy] ## Essentially: ### No direct commercial activity, linking to it is fine as long as it's not the main focus ### No content illegal in the United Kingdom ### No insults, hate, or rumours against a person or group..."
wikitext
text/x-wiki
These are the rules and guidelines you must follow when contributing to this Wiki.
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use]
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy]
## Essentially:
### No direct commercial activity, linking to it is fine as long as it's not the main focus
### No content illegal in the United Kingdom
### No insults, hate, or rumours against a person or group of people
### The community must not become 'toxic'(repeated personal attacks, harassment of users, 'doxing', hate speech and other Code of Conduct violations)
### '''No sexual material involving minors in <u>any way</u> on this site'''
#### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>
### No promoting violence, hatred, or harassment against a person or group of people
### NSFW rules:
#### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins)
#### Explicit imagery, where possible, should be collapsed by default
# If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon)
3770696d19fa143b6e858be6e88cad6832d9ff7b
298
295
2023-06-15T08:02:54Z
Pasadena
2
wikitext
text/x-wiki
These are the rules and guidelines you must follow when contributing to this Wiki.
== Rules ==
You absolutely '''must''' follow these rules.
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use]
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy]
## Essentially:
### No direct commercial activity, linking to it is fine as long as it's not the main focus
### No content illegal in the United Kingdom
### No insults, hate, or rumours against a person or group of people
### The community must not become 'toxic'(repeated personal attacks, harassment of users, 'doxing', hate speech and other Code of Conduct violations)
### '''No sexual material involving minors in <u>any way</u> on this site'''
#### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>
### No promoting violence, hatred, or harassment against a person or group of people
### NSFW rules:
#### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins)
#### Explicit imagery, where possible, should be collapsed by default
# If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon)
== Guidelines ==
These are 'soft' rules, rules you don't have to follow, but it is recommended to.
# When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there
e41b5a700e948967193ba70751cea668d71ae990
Main Page
0
1
296
236
2023-06-15T07:57:06Z
Pasadena
2
/* Contributing */
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** By medium:
*** [[:Category:Static CYOAs|Static CYOAs]]
*** [[:Category:Interactive CYOAs|Interactive CYOAs]]
** By category:
*** [[:Category:Fantasy CYOAs|Fantasy CYOAs]]
*** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc
*** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc
*** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc
*** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc
*** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]]
*** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
* [[:Category:Lore|Lore]]
* [[:Category:Characters|Characters]]
* [[:Category:Locations|Locations]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
* [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources]
* [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs)
== Tutorials ==
=== Static ===
* [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide]
* [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info]
* [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials]
=== Interactive ===
* [[Interactive CYOA Tutorial]] (WIP) (A complete and comprehensive guide to creating [[Interactive CYOA]]s)
* [https://imgur.com/a/QV36Ix8 Neocities Setup #1]
* [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* [[CYOA_Wiki:Rules_and_Guidelines|Rules_and_Guidelines]]
* [[CYOA_Wiki:Manual of Style|Manual of Style]]
* [[CYOA_Wiki:Editing|Editing]] for wiki-specific editing tips
* [[:Category:Templates|Templates]] and [[:Special:UncategorizedTemplates|Uncategorized Templates]]
* [[Special:Categories|Categories]]
* Upload images at [[Special:Upload]]
* Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]]
b9c08e115d880fbf8ef5591338f9864f553c0d09
297
296
2023-06-15T07:57:20Z
Pasadena
2
/* Contributing */
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** By medium:
*** [[:Category:Static CYOAs|Static CYOAs]]
*** [[:Category:Interactive CYOAs|Interactive CYOAs]]
** By category:
*** [[:Category:Fantasy CYOAs|Fantasy CYOAs]]
*** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc
*** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc
*** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc
*** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc
*** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]]
*** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
* [[:Category:Lore|Lore]]
* [[:Category:Characters|Characters]]
* [[:Category:Locations|Locations]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
* [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources]
* [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs)
== Tutorials ==
=== Static ===
* [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide]
* [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info]
* [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials]
=== Interactive ===
* [[Interactive CYOA Tutorial]] (WIP) (A complete and comprehensive guide to creating [[Interactive CYOA]]s)
* [https://imgur.com/a/QV36Ix8 Neocities Setup #1]
* [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* [[CYOA_Wiki:Rules_and_Guidelines|Rules and Guidelines]]
* [[CYOA_Wiki:Manual of Style|Manual of Style]]
* [[CYOA_Wiki:Editing|Editing]] for wiki-specific editing tips
* [[:Category:Templates|Templates]] and [[:Special:UncategorizedTemplates|Uncategorized Templates]]
* [[Special:Categories|Categories]]
* Upload images at [[Special:Upload]]
* Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]]
6ada04c3cb8bbec3c0fe7e3a4bb85c77d7af04fe
CYOA Wiki:Manual of Style
4
16
299
84
2023-06-15T08:06:57Z
Pasadena
2
/* Language */
wikitext
text/x-wiki
== Language ==
This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings.
The most important thing is being consistent, so if an article is written in another variety of English, continue to use that.
=== Pronouns ===
When a gender is unknown, use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him'''.
== Articles/Pages ==
=== Titles ===
CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not.
=== Interactive Articles ===
CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. Otherwise a standalone static or interactive should be fine to have its own page.
== Date and time ==
=== Timezone ===
The timezone used when writing dates and times should UTC+0.
=== Format ===
When writing in long form, write like '''20 July 1981'''.
When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''.
673319c41382d6a61176caf27627d8b1ff05204a
300
299
2023-06-15T08:09:20Z
Pasadena
2
/* Pronouns */
wikitext
text/x-wiki
== Language ==
This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings.
The most important thing is being consistent, so if an article is written in another variety of English, continue to use that.
=== Pronouns ===
When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them/their/theirs/themself (or themselves)''' rather than the masculine default '''he/him/his/himself''' to refer to them.
'''Always''' prefer they/them to '''he or she''' (or vice versa), as this excludes non-binary people.
== Articles/Pages ==
=== Titles ===
CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not.
=== Interactive Articles ===
CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. Otherwise a standalone static or interactive should be fine to have its own page.
== Date and time ==
=== Timezone ===
The timezone used when writing dates and times should UTC+0.
=== Format ===
When writing in long form, write like '''20 July 1981'''.
When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''.
9387d7f2d9c9ad2755c6f5d403f00229b1b2795c
301
300
2023-06-15T08:09:43Z
Pasadena
2
/* Pronouns */
wikitext
text/x-wiki
== Language ==
This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings.
The most important thing is being consistent, so if an article is written in another variety of English, continue to use that.
=== Pronouns ===
When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them.
'''Always''' prefer they/them to '''he or she''' (or vice versa), as this excludes non-binary people.
== Articles/Pages ==
=== Titles ===
CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not.
=== Interactive Articles ===
CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. Otherwise a standalone static or interactive should be fine to have its own page.
== Date and time ==
=== Timezone ===
The timezone used when writing dates and times should UTC+0.
=== Format ===
When writing in long form, write like '''20 July 1981'''.
When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''.
136915b4e36f002bb9c4be227985bbd3a26f2ec6
302
301
2023-06-15T08:10:11Z
Pasadena
2
/* Pronouns */
wikitext
text/x-wiki
== Language ==
This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings.
The most important thing is being consistent, so if an article is written in another variety of English, continue to use that.
=== Pronouns ===
When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them.
'''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people.
== Articles/Pages ==
=== Titles ===
CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not.
=== Interactive Articles ===
CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. Otherwise a standalone static or interactive should be fine to have its own page.
== Date and time ==
=== Timezone ===
The timezone used when writing dates and times should UTC+0.
=== Format ===
When writing in long form, write like '''20 July 1981'''.
When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''.
a06b3388522c215691b6c46cda0c8823b060e43a
CYOA Wiki:Rules and Guidelines
4
73
303
298
2023-06-15T08:17:10Z
Pasadena
2
/* Rules */
wikitext
text/x-wiki
These are the rules and guidelines you must follow when contributing to this Wiki.
== Rules ==
You absolutely '''must''' follow these rules.
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use].
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy].
## Essentially:
### No direct commercial activity. Linking to it is fine as long as it's not the main focus.
### No content illegal in the United Kingdom.
### No insults, hate, or rumours against a person or group of people.
### The community must not become 'toxic' (repeated personal attacks, harassment of users, 'doxing', hate speech and other Code of Conduct violations).
### '''No sexual material involving minors in <u>any way</u> on this site.'''
#### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>.
### No promoting violence, hatred, or harassment against a person or group of people.
### NSFW rules:
#### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins).
#### Explicit imagery, where possible, should be collapsed by default.
# If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon).
# No promoting hatred or bigotry based on a person's sex, gender, race, sexual orientation, gender identity, ability, mental well-being or state, or any immutable group, whether this be in articles, user pages, or otherwise, as long as it is hosted on this Wiki.
## This does not include discussion about said topics, merely promoting it
== Guidelines ==
These are 'soft' rules, rules you don't have to follow, but it is recommended to.
# When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there
640e142622d81fc16afaea2a4c809b5a7756e460
304
303
2023-06-15T08:18:46Z
Pasadena
2
wikitext
text/x-wiki
These are the rules and guidelines you must follow when contributing to this Wiki.
== Rules ==
You absolutely '''must''' follow these rules.
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use].
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy].
## Essentially:
### No direct commercial activity. Linking to it is fine as long as it's not the main focus.
### No content illegal in the United Kingdom.
### No insults, hate, or rumours against a person or group of people.
### The community must not become 'toxic' (repeated personal attacks, harassment of users, 'doxing', hate speech and other Code of Conduct violations).
### '''No sexual material involving minors in <u>any way</u> on this site.'''
#### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>.
### No promoting violence, hatred, or harassment against a person or group of people.
### NSFW rules:
#### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins).
#### Explicit imagery, where possible, should be collapsed by default.
# If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon).
# No promoting hatred or bigotry based on a person's sex, gender, race, sexual orientation, gender identity, ability, mental well-being or state, or any immutable group, whether this be in articles, user pages, or otherwise, as long as it is hosted on this Wiki.
## This does not include discussion about said topics.
== Guidelines ==
These are 'soft' rules, rules that you don't have to follow, but are recommended to.
# When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there.
8fcfeedfc1b2e2a367daa1e0b604262f62f40e5d
311
304
2023-06-15T09:10:01Z
Pasadena
2
/* Rules */
wikitext
text/x-wiki
These are the rules and guidelines you must follow when contributing to this Wiki.
== Rules ==
You absolutely '''must''' follow these rules.
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use].
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy].
## Essentially:
### No direct commercial activity. Linking to it is fine as long as it's not the main focus.
### '''No content illegal in the United Kingdom.'''
### No insults, hate, or rumours against a person or group of people.
### The community must not become 'toxic' (repeated personal attacks, harassment of users, 'dox(x)ing', hate speech and other [https://meta.miraheze.org/wiki/Miraheze_Spaces_Code_of_Conduct Code of Conduct] violations).
### '''No sexual material involving minors in <u>any way</u> on this site.'''
#### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>.
##### United Kingdom law says: "Since 2008, possessing or distributing any sexual image, whether realistic or not, depicting minors is illegal."<ref>https://en.wikipedia.org/wiki/Child_pornography_laws_in_the_United_Kingdom</ref><ref>https://en.wikipedia.org/wiki/Legal_status_of_fictional_pornography_depicting_minors#United_Kingdom</ref>
### No promoting violence, hatred, or harassment against a person or group of people.
### NSFW rules:
#### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins).
#### Explicit imagery, where possible, should be collapsed by default.
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Global_Conduct_Policy Global Conduct Policy].
# If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon).
# '''No promoting hatred or bigotry based on a person's sex, gender, race, sexual orientation, gender identity, ability, mental well-being or state, or any immutable group, whether this be in articles, user pages, or otherwise, as long as it is hosted on this Wiki.'''
## This does not include discussion about said topics.
== Guidelines ==
These are 'soft' rules, rules that you don't have to follow, but are recommended to.
# When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there.
c85cf4ee5d0fef35ec82ff0436f3286b09f0d84d
312
311
2023-06-15T09:10:26Z
Pasadena
2
wikitext
text/x-wiki
These are the rules and guidelines you must follow when contributing to this Wiki.
== Rules ==
You absolutely '''must''' follow these rules.
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use].
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy].
## Essentially:
### No direct commercial activity. Linking to it is fine as long as it's not the main focus.
### '''No content illegal in the United Kingdom.'''
### No insults, hate, or rumours against a person or group of people.
### The community must not become 'toxic' (repeated personal attacks, harassment of users, 'dox(x)ing', hate speech and other [https://meta.miraheze.org/wiki/Miraheze_Spaces_Code_of_Conduct Code of Conduct] violations).
### '''No sexual material involving minors in <u>any way</u> on this site.'''
#### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>.
##### United Kingdom law says: "Since 2008, possessing or distributing any sexual image, whether realistic or not, depicting minors is illegal."<ref>https://en.wikipedia.org/wiki/Child_pornography_laws_in_the_United_Kingdom</ref><ref>https://en.wikipedia.org/wiki/Legal_status_of_fictional_pornography_depicting_minors#United_Kingdom</ref>
### No promoting violence, hatred, or harassment against a person or group of people.
### NSFW rules:
#### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins).
#### Explicit imagery, where possible, should be collapsed by default.
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Global_Conduct_Policy Global Conduct Policy].
# If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon).
# '''No promoting hatred or bigotry based on a person's sex, gender, race, sexual orientation, gender identity, ability, mental well-being or state, or any immutable group, whether this be in articles, user pages, or otherwise, as long as it is hosted on this Wiki.'''
## This does not include discussion about said topics.
== Guidelines ==
These are 'soft' rules, rules that you don't have to follow, but are recommended to.
# When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there.
== References ==
<references />
15cf7211923d4f89d4e38a106fdc81e5c3163998
313
312
2023-06-15T09:10:48Z
Pasadena
2
Protected "[[CYOA Wiki:Rules and Guidelines]]": High traffic page ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
wikitext
text/x-wiki
These are the rules and guidelines you must follow when contributing to this Wiki.
== Rules ==
You absolutely '''must''' follow these rules.
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use].
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy].
## Essentially:
### No direct commercial activity. Linking to it is fine as long as it's not the main focus.
### '''No content illegal in the United Kingdom.'''
### No insults, hate, or rumours against a person or group of people.
### The community must not become 'toxic' (repeated personal attacks, harassment of users, 'dox(x)ing', hate speech and other [https://meta.miraheze.org/wiki/Miraheze_Spaces_Code_of_Conduct Code of Conduct] violations).
### '''No sexual material involving minors in <u>any way</u> on this site.'''
#### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>.
##### United Kingdom law says: "Since 2008, possessing or distributing any sexual image, whether realistic or not, depicting minors is illegal."<ref>https://en.wikipedia.org/wiki/Child_pornography_laws_in_the_United_Kingdom</ref><ref>https://en.wikipedia.org/wiki/Legal_status_of_fictional_pornography_depicting_minors#United_Kingdom</ref>
### No promoting violence, hatred, or harassment against a person or group of people.
### NSFW rules:
#### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins).
#### Explicit imagery, where possible, should be collapsed by default.
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Global_Conduct_Policy Global Conduct Policy].
# If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon).
# '''No promoting hatred or bigotry based on a person's sex, gender, race, sexual orientation, gender identity, ability, mental well-being or state, or any immutable group, whether this be in articles, user pages, or otherwise, as long as it is hosted on this Wiki.'''
## This does not include discussion about said topics.
== Guidelines ==
These are 'soft' rules, rules that you don't have to follow, but are recommended to.
# When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there.
== References ==
<references />
15cf7211923d4f89d4e38a106fdc81e5c3163998
314
313
2023-06-15T09:13:22Z
Pasadena
2
/* Rules */
wikitext
text/x-wiki
These are the rules and guidelines you must follow when contributing to this Wiki.
== Rules ==
You absolutely '''must''' follow these rules.
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use].
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy].
## Essentially:
### No direct commercial activity. Linking to it is fine as long as it's not the main focus.
### '''No content illegal in the United Kingdom.'''
### No insults, hate, or rumours against a person or group of people.
### The community must not become 'toxic' (repeated personal attacks, harassment of users, 'dox(x)ing', hate speech and other [https://meta.miraheze.org/wiki/Miraheze_Spaces_Code_of_Conduct Code of Conduct] violations).
### '''No sexual material involving minors in <u>any way</u> on this site.'''
#### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>.
##### United Kingdom law says: "Since 2008, possessing or distributing any sexual image, whether realistic or not, depicting minors is illegal."<ref>https://en.wikipedia.org/wiki/Child_pornography_laws_in_the_United_Kingdom</ref><ref>https://en.wikipedia.org/wiki/Legal_status_of_fictional_pornography_depicting_minors#United_Kingdom</ref> Ergo, '''hosting and/or displaying Lolicon and Shotacon on this wiki is not allowed.'''
### No promoting violence, hatred, or harassment against a person or group of people.
### NSFW rules:
#### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins).
#### Explicit imagery, where possible, should be collapsed by default.
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Global_Conduct_Policy Global Conduct Policy].
# If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon).
# '''No promoting hatred or bigotry based on a person's sex, gender, race, sexual orientation, gender identity, ability, mental well-being or state, or any immutable group, whether this be in articles, user pages, or otherwise, as long as it is hosted on this Wiki.'''
## This does not include discussion about said topics.
== Guidelines ==
These are 'soft' rules, rules that you don't have to follow, but are recommended to.
# When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there.
== References ==
<references />
c59d144ae9fce63a0be86f3ad26869be20cfcd2d
315
314
2023-06-15T09:20:01Z
Pasadena
2
/* Rules */
wikitext
text/x-wiki
These are the rules and guidelines you must follow when contributing to this Wiki.
== Rules ==
You absolutely '''must''' follow these rules.
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use].
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy].
#* Essentially:
### No direct commercial activity. Linking to it is fine as long as it's not the main focus.
### '''No content illegal in the United Kingdom.'''
### No insults, hate, or rumours against a person or group of people.
### The community must not become 'toxic' (repeated personal attacks, harassment of users, 'dox(x)ing', hate speech and other [https://meta.miraheze.org/wiki/Miraheze_Spaces_Code_of_Conduct Code of Conduct] violations).
### '''No sexual material involving minors in <u>any way</u> on this site.'''
#### References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>.
##### United Kingdom law says: "Since 2008, possessing or distributing any sexual image, whether realistic or not, depicting minors is illegal."<ref>https://en.wikipedia.org/wiki/Child_pornography_laws_in_the_United_Kingdom</ref><ref>https://en.wikipedia.org/wiki/Legal_status_of_fictional_pornography_depicting_minors#United_Kingdom</ref> Ergo, '''hosting and/or displaying Lolicon and Shotacon on this wiki is not allowed.'''
### No promoting violence, hatred, or harassment against a person or group of people.
##* NSFW rules:
#### No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins).
#### Explicit imagery, where possible, should be collapsed by default.
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Global_Conduct_Policy Global Conduct Policy].
# If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon).
# '''No promoting hatred or bigotry based on a person's sex, gender, race, sexual orientation, gender identity, ability, mental well-being or state, or any immutable group, whether this be in articles, user pages, or otherwise, as long as it is hosted on this Wiki.'''
## This does not include discussion about said topics.
== Guidelines ==
These are 'soft' rules, rules that you don't have to follow, but are recommended to.
# When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there.
== References ==
<references />
fe627fb4d334599e64498d16d079b46fff03048d
318
315
2023-06-16T02:57:23Z
Pasadena
2
/* Rules */
wikitext
text/x-wiki
These are the rules and guidelines you must follow when contributing to this Wiki.
== Rules ==
You absolutely '''must''' follow these rules.
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Terms_of_Use Terms of Use].
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Content_Policy Content Policy].
#* Essentially:
#*# No direct commercial activity. Linking to it is fine as long as it's not the main focus.
#*# '''No content illegal in the United Kingdom.'''
#*# No insults, hate, or rumours against a person or group of people.
#*# The community must not become 'toxic' (repeated personal attacks, harassment of users, 'dox(x)ing', hate speech and other [https://meta.miraheze.org/wiki/Miraheze_Spaces_Code_of_Conduct Code of Conduct] violations).
#*# '''No sexual material involving minors in <u>any way</u> on this site.'''
#*#* References and discussions about outside and linked content is fine, <u>as long as it is legal under United Kingdom law</u>.
#*#** United Kingdom law says: "Since 2008, possessing or distributing any sexual image, whether realistic or not, depicting minors is illegal."<ref>https://en.wikipedia.org/wiki/Child_pornography_laws_in_the_United_Kingdom</ref><ref>https://en.wikipedia.org/wiki/Legal_status_of_fictional_pornography_depicting_minors#United_Kingdom</ref> Ergo, '''hosting and/or displaying Lolicon and Shotacon on this wiki is not allowed.'''
#*# No promoting violence, hatred, or harassment against a person or group of people.
#** NSFW rules:
#**# No NSFW/explicit imagery on the [[Main Page]] (this one's for the Admins).
#**# Explicit imagery, where possible, should be collapsed by default.
# You must follow Miraheze's [https://meta.miraheze.org/wiki/Global_Conduct_Policy Global Conduct Policy].
# If the page in question is about an NSFW topic (such as an NSFW CYOA or an Author who has posted NSFW CYOAs), please indicate at the very top that the page will contain NSFW topics or links (there will be a template for that soon).
# '''No promoting hatred or bigotry based on a person's sex, gender, race, sexual orientation, gender identity, ability, mental well-being or state, or any immutable group, whether this be in articles, user pages, or otherwise, as long as it is hosted on this Wiki.'''
#* This does not include discussion about said topics.
== Guidelines ==
These are 'soft' rules, rules that you don't have to follow, but are recommended to.
# When editing, please refer to the [[:CYOA_Wiki:Manual of Style|Manual of Style]] and follow the standards set there.
== References ==
<references />
03112d577119d5f17f3ac6083f8255fa53e6c3bf
CYOA Wiki:Manual of Style
4
16
305
302
2023-06-15T08:20:59Z
Pasadena
2
/* Timezone */
wikitext
text/x-wiki
== Language ==
This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings.
The most important thing is being consistent, so if an article is written in another variety of English, continue to use that.
=== Pronouns ===
When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them.
'''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people.
== Articles/Pages ==
=== Titles ===
CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not.
=== Interactive Articles ===
CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. Otherwise a standalone static or interactive should be fine to have its own page.
== Date and time ==
=== Timezone ===
The timezone used when writing dates and times should either be UTC+0, have the timezone indicated in brackets (like this), or, when unknown, have <code>(unknown timezone)</code> be put after it.
=== Format ===
When writing in long form, write like '''20 July 1981'''.
When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''.
fa11062069ab0ce534f5287749839b196a841644
306
305
2023-06-15T08:21:24Z
Pasadena
2
/* Format */
wikitext
text/x-wiki
== Language ==
This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings.
The most important thing is being consistent, so if an article is written in another variety of English, continue to use that.
=== Pronouns ===
When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them.
'''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people.
== Articles/Pages ==
=== Titles ===
CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not.
=== Interactive Articles ===
CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. Otherwise a standalone static or interactive should be fine to have its own page.
== Date and time ==
=== Timezone ===
The timezone used when writing dates and times should either be UTC+0, have the timezone indicated in brackets (like this), or, when unknown, have <code>(unknown timezone)</code> be put after it.
=== Date Format ===
When writing in long form, write like '''20 July 1981'''.
When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''.
4895d4eb671628778fd972f4a05a725dd6bf49d4
307
306
2023-06-15T08:22:33Z
Pasadena
2
/* Date Format */
wikitext
text/x-wiki
== Language ==
This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings.
The most important thing is being consistent, so if an article is written in another variety of English, continue to use that.
=== Pronouns ===
When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them.
'''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people.
== Articles/Pages ==
=== Titles ===
CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not.
=== Interactive Articles ===
CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article. Otherwise a standalone static or interactive should be fine to have its own page.
== Date and time ==
=== Timezone ===
The timezone used when writing dates and times should either be UTC+0, have the timezone indicated in brackets (like this), or, when unknown, have <code>(unknown timezone)</code> be put after it.
=== Time Format ===
Prefer 24 hours time, like '''05:30''' and '''16:48''', rather than '''5:30 a.m.''' and '''4:48 p.m.'''.
=== Date Format ===
When writing in long form, write like '''20 July 1981'''.
When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''.
230c26e7dab4d9447d6d10b470eb487a05d4fb92
308
307
2023-06-15T08:23:13Z
Pasadena
2
/* Interactive Articles */
wikitext
text/x-wiki
== Language ==
This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings.
The most important thing is being consistent, so if an article is written in another variety of English, continue to use that.
=== Pronouns ===
When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them.
'''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people.
== Articles/Pages ==
=== Titles ===
CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not.
=== Interactive Articles ===
CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article.
A standalone static or interactive is fine to have its own page.
== Date and time ==
=== Timezone ===
The timezone used when writing dates and times should either be UTC+0, have the timezone indicated in brackets (like this), or, when unknown, have <code>(unknown timezone)</code> be put after it.
=== Time Format ===
Prefer 24 hours time, like '''05:30''' and '''16:48''', rather than '''5:30 a.m.''' and '''4:48 p.m.'''.
=== Date Format ===
When writing in long form, write like '''20 July 1981'''.
When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''.
f43f2362109ede91090916b6027525f3cd1cd630
309
308
2023-06-15T08:58:16Z
Pasadena
2
/* Language */
wikitext
text/x-wiki
== Language ==
This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings.
The most important thing is being consistent, so if an article is written in another variety of English, continue to use that.
=== Word choice ===
====Pronouns ====
When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them.
'''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people.
=== Punctuation ===
* Use the [[wikipedia:Oxford comma|Oxford comma]]
** Do this: Tom, Dick, and Harry
** Don't do this: Tom, Dick and Harry
== Articles/Pages ==
=== Titles ===
CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not.
=== Interactive Articles ===
CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article.
A standalone static or interactive is fine to have its own page.
== Date and time ==
=== Timezone ===
The timezone used when writing dates and times should either be UTC+0, have the timezone indicated in brackets (like this), or, when unknown, have <code>(unknown timezone)</code> be put after it.
=== Time Format ===
Prefer 24 hours time, like '''05:30''' and '''16:48''', rather than '''5:30 a.m.''' and '''4:48 p.m.'''.
=== Date Format ===
When writing in long form, write like '''20 July 1981'''.
When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''.
8e3793ae1b855e87b3886686fea34f0ebb80fe44
310
309
2023-06-15T08:58:37Z
Pasadena
2
/* Punctuation */
wikitext
text/x-wiki
== Language ==
This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings.
The most important thing is being consistent, so if an article is written in another variety of English, continue to use that.
=== Word choice ===
====Pronouns ====
When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them.
'''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people.
=== Punctuation ===
* Use the [[wikipedia:Oxford comma|Oxford comma]]
** '''Do this:''' Tom, Dick, and Harry
** Don't do this: Tom, Dick and Harry
== Articles/Pages ==
=== Titles ===
CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not.
=== Interactive Articles ===
CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article.
A standalone static or interactive is fine to have its own page.
== Date and time ==
=== Timezone ===
The timezone used when writing dates and times should either be UTC+0, have the timezone indicated in brackets (like this), or, when unknown, have <code>(unknown timezone)</code> be put after it.
=== Time Format ===
Prefer 24 hours time, like '''05:30''' and '''16:48''', rather than '''5:30 a.m.''' and '''4:48 p.m.'''.
=== Date Format ===
When writing in long form, write like '''20 July 1981'''.
When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''.
fa7ab315349569883ef7d94f6e2f4a60068c485a
319
310
2023-06-16T02:59:20Z
Pasadena
2
/* Punctuation */
wikitext
text/x-wiki
== Language ==
This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings.
The most important thing is being consistent, so if an article is written in another variety of English, continue to use that.
=== Word choice ===
====Pronouns ====
When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them.
'''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people.
=== Punctuation ===
Use the [[wikipedia:Oxford comma|Oxford comma]]:
** '''Do this:''' Tom, Dick, and Harry
** Don't do this: Tom, Dick and Harry
== Articles/Pages ==
=== Titles ===
CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not.
=== Interactive Articles ===
CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article.
A standalone static or interactive is fine to have its own page.
== Date and time ==
=== Timezone ===
The timezone used when writing dates and times should either be UTC+0, have the timezone indicated in brackets (like this), or, when unknown, have <code>(unknown timezone)</code> be put after it.
=== Time Format ===
Prefer 24 hours time, like '''05:30''' and '''16:48''', rather than '''5:30 a.m.''' and '''4:48 p.m.'''.
=== Date Format ===
When writing in long form, write like '''20 July 1981'''.
When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''.
12adc19565cb5c9b44aeb65e53febb05f596f0d7
320
319
2023-06-16T02:59:33Z
Pasadena
2
/* Punctuation */
wikitext
text/x-wiki
== Language ==
This wiki should follow [[w:Oxford spelling|Oxford spelling]], which is essentially [[w:British English|British English]] with -ize (but NOT -yze) endings.
The most important thing is being consistent, so if an article is written in another variety of English, continue to use that.
=== Word choice ===
====Pronouns ====
When a gender is unknown or variable (such as, when gender is a chosen option in a CYOA), use the 3rd person singular epicene pronouns '''they/them''' rather than the masculine default '''he/him''' to refer to them.
'''Always''' prefer '''they/them''' to '''he or she''' (or vice versa) or '''s(he)''', as this excludes non-binary people.
=== Punctuation ===
Use the [[wikipedia:Oxford comma|Oxford comma]]:
* '''Do this:''' Tom, Dick, and Harry
* Don't do this: Tom, Dick and Harry
== Articles/Pages ==
=== Titles ===
CYOA articles should always end in "CYOA", regardless of whether if that is present in the original title or not.
=== Interactive Articles ===
CYOAs should not split up static and interactive versions on different pages, they should instead have both versions on a single article.
A standalone static or interactive is fine to have its own page.
== Date and time ==
=== Timezone ===
The timezone used when writing dates and times should either be UTC+0, have the timezone indicated in brackets (like this), or, when unknown, have <code>(unknown timezone)</code> be put after it.
=== Time Format ===
Prefer 24 hours time, like '''05:30''' and '''16:48''', rather than '''5:30 a.m.''' and '''4:48 p.m.'''.
=== Date Format ===
When writing in long form, write like '''20 July 1981'''.
When writing numerically, write according to YYYY-MM-DD, like '''1981-07-20'''.
757f6af841ab48b22645504cab329d193d968be1
Main Page
0
1
316
297
2023-06-15T09:28:26Z
Pasadena
2
/* Contributing */
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
* [[:Category:CYOAs|CYOAs]]
** By medium:
*** [[:Category:Static CYOAs|Static CYOAs]]
*** [[:Category:Interactive CYOAs|Interactive CYOAs]]
** By category:
*** [[:Category:Fantasy CYOAs|Fantasy CYOAs]]
*** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc
*** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc
*** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc
*** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc
*** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]]
*** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
* [[:Category:Lore|Lore]]
* [[:Category:Characters|Characters]]
* [[:Category:Locations|Locations]]
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
* [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources]
* [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs)
== Tutorials ==
=== Static ===
* [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide]
* [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info]
* [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials]
=== Interactive ===
* [[Interactive CYOA Tutorial]] (WIP) (A complete and comprehensive guide to creating [[Interactive CYOA]]s)
* [https://imgur.com/a/QV36Ix8 Neocities Setup #1]
* [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* Before editing, please read the [[CYOA_Wiki:Rules_and_Guidelines|Rules and Guidelines]]
* See the [[CYOA_Wiki:Manual of Style|Manual of Style]] for the style guide for this wiki
* [[CYOA_Wiki:Editing|Editing]] for wiki-specific editing tips
* [[:Category:Templates|Templates]] and [[:Special:UncategorizedTemplates|Uncategorized Templates]]
* [[Special:Categories|Categories]]
* Upload images at [[Special:Upload]]
* Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]]
987dd31b584e978cf1a1856b7f4bd4b02da72479
317
316
2023-06-15T09:30:11Z
Pasadena
2
/* Quick Start */
wikitext
text/x-wiki
__NOTOC__
== Welcome to the {{SITENAME}}! ==
This wiki is dedicated to cataloguing and categorizing CYOAs, their authors, as well as the lore, characters, locations, and so on therein.
== What are CYOAs? ==
A CYOA (Choose Your Own Adventure) is a medium through which players are given choices to pick and choose between, in order to facilitate writing stories, worldbuilding, or simply to have fun. These can be pure text, text and images, or even in an interactive format. Examples of CYOAs can be found at the subreddit [https://www.reddit.com/r/makeyourchoice r/makeyourchoice], which has a thriving community of forty thousand.
== Quick Start ==
<div style="column-count: 2">
* [[:Category:CYOAs|CYOAs]]
** By medium:
*** [[:Category:Static CYOAs|Static CYOAs]]
*** [[:Category:Interactive CYOAs|Interactive CYOAs]]
** By category:
*** [[:Category:Fantasy CYOAs|Fantasy CYOAs]]
*** [[:Category:Godlike CYOAs|Godlike CYOAs]] – Godlike powers, gods, power fantasy, etc
*** [[:Category:Historical CYOAs|Historical CYOAs]] – Historical settings, distant past, historical fantasy, etc
*** [[:Category:Horror CYOAs|Horror CYOAs]] – Horror, spooky, evil, etc
*** [[:Category:Superpower CYOAs|Superpower CYOAs]] – Superheroes, superpowers, etc
*** [[:Category:Science Fantasy CYOAs|Science Fantasy CYOAs]]
*** [[:Category:Science Fiction CYOAs|Science Fiction CYOAs]] – Sci-Fi
* [[:Category:Authors|Authors]]
** [[:Category:Static Authors|Static Authors]]
** [[:Category:Interactive Authors|Interactive Authors]]
* [[:Category:Lore|Lore]]
* [[:Category:Characters|Characters]]
* [[:Category:Locations|Locations]]
</div>
== Helpful Links ==
* [https://www.reddit.com/r/makeyourchoice r/makeyourchoice]
* [https://www.reddit.com/r/InteractiveCYOA r/InteractiveCYOA]
* [https://www.reddit.com/r/makeyourchoice/wiki/imageresources/ CYOA Image Resources]
* [https://cyoaarchive.com/main Latest Allsync] (A massive archive of most static CYOAs)
== Tutorials ==
=== Static ===
* [https://www.reddit.com/r/makeyourchoice/wiki/cyoaguide/ r/makeyourchoice CYOA Guide]
* [https://cyoa.allsync.com/s/owWor64yLTngDk3?path=%2FCYOA%20Tutorials%2C%20Info Allsync CYOA Tutorials and Info]
* [https://drive.google.com/drive/folders/1IkUgULy7jFutk-xE24f43uicN2VC4NbM TokHaar Gol's CYOA Tutorials]
=== Interactive ===
* [[Interactive CYOA Tutorial]] (WIP) (A complete and comprehensive guide to creating [[Interactive CYOA]]s)
* [https://imgur.com/a/QV36Ix8 Neocities Setup #1]
* [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Neocities Setup #2]
== Contributing ==
Want to contribute to this wiki? See the articles below.
* Before editing, please read the [[CYOA_Wiki:Rules_and_Guidelines|Rules and Guidelines]]
* See the [[CYOA_Wiki:Manual of Style|Manual of Style]] for the style guide for this wiki
* [[CYOA_Wiki:Editing|Editing]] for wiki-specific editing tips
* [[:Category:Templates|Templates]] and [[:Special:UncategorizedTemplates|Uncategorized Templates]]
* [[Special:Categories|Categories]]
* Upload images at [[Special:Upload]]
* Create Infoboxes with [[Special:InfoboxBuilder|InfoboxBuilder]]
bbcc013302416ac5eeac9f16c6b1f16256d7a9b2
Interactive CYOA Tutorial
0
22
321
287
2023-06-16T03:02:51Z
Pasadena
2
/* Filters */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
This is what a complete CYOA would look like in this menu:
<div class="res-img">[[File:0bb_full_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
</div><div class="res-img">[[File:0c_viewer.png|link=]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:0d_help_and_instructions.gif|link=]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have private styling or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>).
Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once.
If you have changed an individual Choice's width, then setting back to Row resets it back to the default.
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
<div class="res-img">[[File:image.gif|link=]]</div>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Position ====
Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
See [[#Making a Static Background]] for more.
=== Text ===
=== Filters ===
=== Private Styling ===
== Extending your CYOA ==
Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more.
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Making a Static Background ===
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight>
|-
| This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight>
|-
| This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight>
|-
| This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight>
|-
| This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight>
|-
| This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight>
|-
| This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight>
|-
| This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
===== Lists =====
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
f85aa5f57f20af39232c596533c9e15d50dcda59
322
321
2023-06-16T03:03:33Z
Pasadena
2
/* Cloning Rows */
wikitext
text/x-wiki
This is a complete and comprehensive guide to using the [[Interactive CYOA Creator]] by [[MeanDelay]].
== Introduction ==
=== Useful links ===
==== Interactive CYOA Creator ====
* [https://intcyoacreator.onrender.com/ Online creator]
* [https://meandelay.itch.io/interactive-cyoa-creator Offline creator at itch.io (one time purchase of at least 2.50 USD)]
==== Subreddits ====
* [https://www.reddit.com/r/InteractiveCYOA/ r/InteractiveCYOA] – If you make a CYOA, feel free to showcase it here!
* [https://www.reddit.com/r/makeyourchoice/ r/makeyourchoice] (mainly static CYOAs, but interactive are accepted if you link the static)
==== Other Tutorials ====
* [https://www.reddit.com/r/InteractiveCYOA/comments/nxrlvm/how_to_guide_on_making_interactive_cyoas_for_a/ How to guide on making interactive CYOAs for a first time creator. (Reddit)] – This guide shows you how to upload your finished [[Interactive CYOA]]s to Neocities, which is also covered in this tutorial [[#Uploading_Your_Project|here]]
** [https://imgur.com/a/QV36Ix8 Imgur]
** [https://docs.google.com/presentation/d/18wSgIooZxM_uA3I90KmZICl9guaQMeVIuqCpV-UffJA/edit Google Slides]
* [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ Tips and Pitfalls for Interactive CYOA Creators (Reddit)]
=== Launching the creator ===
When you launch the creator, you will be greeted with this screen:
<div class="res-img">
[[File:0a_start.png|link=]]
</div>
==== Open Image-CYOA Creator ====
This is where you go to create [[Interactive CYOA]]s.
When you first open it, you will be greeted with a blank screen and a minimized sidebar. To learn more about the sidebar, go to [[#The Sidebar]].
<div class="res-img">[[File:0b_creator.png|link=]]</div>
This is what a complete CYOA would look like in this menu:
<div class="res-img">[[File:0bb_full_creator.png|link=]]</div>
==== Open Image-CYOA Viewer ====
This is where you can preview CYOAs before you upload them. You can play them, but options selected in the viewer will persist in the editor, so make sure you [[#Resetting_choices|reset the option]]s.
</div><div class="res-img">[[File:0c_viewer.png|link=]]</div>
==== Help and Instructions ====
A small tutorial made by the author themself. It should be redundant with this tutorial, but you may wish to check it out anyway.
<div class="res-img">[[File:0d_help_and_instructions.gif|link=]]</div>
=== The Sidebar ===
== Basics ==
=== Rows ===
The basic building block of Interactive CYOAs made with this creator is the Row. Rows are not only the sections that divide the CYOA up, but it is only attached to a row where choices can exist.
==== Creating Rows====
Create a row by opening up the sidebar and pressing '''Create New Row'''.
<div class="res-img">
[[File:1_creating_a_row.gif|link=]]
</div>
==== Cloning Rows ====
To clone a row, press the [[File:2_clone_button.png|30px|link=]] button.
Cloning rows can be useful when you have [[#Private_Styling|private styling]] or a specific set of choices you need to repeat.
<div class="res-img">[[File:4_clone_row.gif|link=]]</div>
==== Deleting Rows ====
To delete a row, press the [[File:3_delete_button.png|30px|link=]] button and then '''OK'''.
<div class="res-img">[[File:5_delete_row.gif|link=]]</div>
==== Editing a Row ====
To edit a row, press the wrench/spanner icon: [[File:6_edit_row.png|30px|link=]].
This will open the edit menu for the row.
<div class="res-img">[[File:7_edit_row.gif|link=]]</div>
==== Row Title ====
By default, the row title will be '''Row'''.
As rows are generally sections (such as Powers, Perks, Drawbacks, etc), you should name your row after what the choices represent.
To edit the row title, simply edit the text in the '''Row Title''' section.
<div class="res-img">[[File:8_row_title.gif|link=]]</div>
==== Row Text ====
Row Text can be used to provide a description of the section.
You can also use it to provide notes specific to the section in particular, such as informing the players that they can select only 1 option.
To edit the row text, simply edit the text in the '''Row Text section'''.
<div class="res-img">[[File:9_row_text.gif|link=]]</div>
==== Allowed Choices ====
The '''Allowed Choices''' options allows you to restrict the amount of choices a player can pick in that row. It takes a positive integer (a whole number, like 5 or 28).
If you want ANY number of options with no limits, simply put <code>0</code> into the field.
This is used for sections where you might say "You may only take X options".
There will be a way to dynamically change this amount, but we’ll come back to that later (to skip ahead, see [[#Adds_or_takes_away_a_rows_Allowed_Choices|here]]).
<div class="res-img">[[File:10_allowed_choices.png|link=]]</div>
----
<div class="res-img">[[File:10b_allowed_choices.gif|link=]]</div>
==== Selected Choices (Input) ====
The 'Selected Choices' will show how many choices are currently selected, and should normally be 0.
'''You should not change this value unless you know what you're doing.'''
If it is something else and no choices are selected, then something has gone wrong. You can fix this by changing the value to 0.
<div class="res-img">[[File:11_selected_choices.gif|link=]]</div>
==== Objects Per Row ====
The '''Objects Per Row''' option allows you to determine how many choices are present within a row.
<div class="res-img">[[File:12_objects_per_row.png|frame|center|link=|The option]]</div>
'''Preview:'''
<gallery mode="slideshow" caption="Objects Per Row preview">
13_1_per_row.png|link=|1 per Row
14_3_per_row.png|link=|3 per Row
15_4_per_row.png|link=|4 per Row
</gallery>
===== 'Row' Objects per Row =====
Most Row Width (A Row's <code>Objects Per Row</code> number) options seem pretty straightforward, but this one in particular might get confusing. It is not used by a Row's Row Width (thought the option is bafflingly there), it is instead used for individual Choice Widths (An Object/Choice's <code>Object Width</code>).
Choices have an Object Width of <code>Row</code> by default, and that means that their width is equal to whatever is set by the Row Width. This is convenient in that you don't need to go into each and every choice width and update it, instead only updating the Row Width once.
If you have changed an individual Choice's width, then setting back to Row resets it back to the default.
==== Non-Activatable? ====
For when you just want to supply information and don’t want those information boxes (choices) to be selected.
From the official tutorial:
:''The third button will make it impossible for a player to change any of the choices, if one is selected then it will stay selected and vice versa. Good to use when the user should be given information or story, and not choices.''
<div class="res-img">[[File:16_non_activatable.gif|link=]]</div>
==== Selected Choices? (Switch) ====
The <code>Selected Choices?</code> switch enables a whole host of other options that have to do with the choices in the row.
From the official tutorial:
:<i>The middle button named 'Selected Choices?' can be used to make the row show all choices that have been selected, good to use at the end of the project to let the player see the choices they have made. A private row design should be used to make filters invisible.</i>
<div class="res-img">[[File:image.gif|link=]]</div>
===== Selected Choices from Group Id =====
===== Deselect choices when Row lacks requirements? =====
===== Choices will all be 'Template Top' and Row Width =====
This option will force all images to display above choices (instead of, say, to the side or below), as well as have all the choices take up the same row width as is set in the Row settings (cancelling any custom Row Widths for choices, forcing standardization).
===== Remove the text of the choices =====
This option removes the body text of all the choices within the row, but keeps the title and images.
===== Show the title of the row in the choice. =====
==== Half of the Screen? ====
For when you want two rows side by side.
==== Row List (Side Menu) ====
This can be useful when moving rows over a lot of other rows.
==== Sort The Choices In The Row (Row Settings) ====
This can be useful.
=== Choices / Objects ===
Choices (also called Objects by the creator) are individual options that can be selected by the player.
==== Creating Choices ====
==== Cloning and Deleting Choices ====
Same as with rows.
==== Resetting choices ====
If you've accidentally activated choices, you can reset them using the following methods:
==== Object Width ====
For sizing your section.
==== Functions ====
===== Selecting this choice will deselect other choices =====
very dangerous but useful
===== This choice can be selected multiple times =====
Use simply variable instead of a point type in almost all situations
===== Selecting this choice will be impossible =====
Kind of like the Row Non-Activatable option, but instead for individual choices. In my experience, has been known to be buggy
===== Forces another choice active =====
Program Explanation: Works badly if multiple of these have the same ID, or if the target has requirements attached. You can use commas to activate multiple (ID,ID,ID).
===== Will make another choice unselected =====
The opposite of forcing one active, this forcibly deactivates it
===== Adds or takes away a rows Allowed Choices =====
Can be used to dynamically change what a rows Allowed Choices are.
Little trick: Having a choice affect the Allowed Choices of the row that it is in allows it to be selected without affecting the number of allowed choices.
==== Clean Selected Choices (Side Menu) ====
=== IDs & Requirements ===
==== IDs – Unique Identifiers ====
What are IDs? IDs are unique identifiers that allow the creator to directly access any object, whether that be rows, choices, points, or groups.
They are particularly useful in situations where you have lots of choices that have requirements, meaning if you assign IDs according to regular, predictable rules, you don't need to check what the IDs are.
'''It is strongly suggested that you change default IDs.'''
==== Requirements ====
===== Selected choice =====
if x == true
===== Non-selected choice =====
if x != true
===== ‘One of these is selected’ requirement =====
OR
===== ‘None of these is selected’ requirement =====
XOR?
===== Doing multiple selected choices =====
AND
===== Doing multiple non-selected choices =====
NOR
==== Hiding Rows via Selected Choice ====
===== Nested Rows =====
Based on [https://www.reddit.com/r/InteractiveCYOA/comments/wrf0hl/tips_and_pitfalls_for_interactive_cyoa_creators/ this].
:''The third common pitfall is row nesting, specifically how NOT to do it. Now nesting rows in and of itself isn't a bad thing. It prevents having to scroll through hundreds of choices to find the section you want (one of the few design flaws of the WoW ICYOA listed above). Instead, you design the various rows to only show when the prerequisite choice is active, basically showing up at the push of a button. Nesting rows occurs when the button for a row is inside another row, which can be inside another row, and so on. Overusing this can lead to your users being confused and annoyed, having to search through nested row after nested row to find the section they want. Not fun. Finding the right balance between "ALL THE CHOICES" and "Where the hell is it!" is important.<br><br>Another problem with nested rows is avoiding orphaned rows. Orphaned rows occur when attempting to close multiple levels of nested rows by closing the top row leaves the lower rows still visible. This is an annoying design flaw that forces your users to close nested rows in order, every time.<br><br>What's worse is if the button for a nested row is a choice you want to keep, leaving you unable to close the orphan row without screwing up your build. This is both aggravating and very unprofessional. To counteract this, require all your nested rows to need all previous levels active to appear. Thus, if you close an upper level, it will close all lower levels. This does become slightly tedious to code the deeper a nested row is, however.''
==== Disabled Choices via Selected Choice ====
Hiding choices using filters – almost always use private styling
==== Navigation with ID / Title list ====
ID / Title list as helpful way of navigating your way through a large CYOA – showcase JRPG Traitor
==== Reusing IDs ====
Interesting fact: Setting multiple things to the same ID allows you to activate one through the other
=== Points & Scores ===
==== Creating Points ====
===== Names =====
===== Starting Sum =====
===== The Power of Hidden Point Types =====
'''This score is not allowed to go under 0'''
I find it particularly useful in hidden point types that determine how much of a thing you’re allowed to select
===== +/- Score Signs =====
'''Add a + or - in front of the scores'''
===== Positive/Negative Colours =====
'''Set colors for positive or negative'''
===== Score Icon =====
===== Hide Point Types =====
ID needed to show
==== Scores ====
===== Adding Scores =====
===== Subtract Points =====
This is the default behaviour.
===== Add Points =====
===== Text Before =====
Change to something like “Gain:” or “Gives:” when adding points, but keep it at "Cost:" when subtracting points.
===== Show Score? =====
This can be used to hide mechanics, or if the image shows the points already.
===== Requirements and Discounts =====
Discounts can be made using requirements.
=== Images ===
It is advisable that you do not upload images until the core mechanics of the CYOA are complete. The vast majority of space that an Interactive CYOA takes up is due to images, and a huge amount of images will slow down lower end PCs. CYOAs over 300 MB are known to have caused issues.
==== Local vs External Images ====
There are pros and cons to using both local and external images for choices.
{| class="wikitable"
|+ Local vs External Images
|-
! Image type !! Pros !! Cons !! Use case
|-
| '''Local images''' || + Faster<br> + More reliable|| - Takes up space (too much space can crash the creator, and most free website hosts limit how much space you can use)||Smaller projects (<300 MB)
|-
| '''External images''' || + You keep the size of your project.json down || - Slower<br>- You have to trust the servers won't delete the image||Larger projects (>300 MB)
|}
==== Local Images ====
==== External Images ====
===== Image host sites =====
Keep in mind that your images should follow a host's terms and conditions in order to not have the image removed.
'''Public'''
* [https://imgur.com/ Imgur]
'''Private'''
* Discord (open image preview → '''Open in Browser''' to get the link)
==== Cropping ====
===== Aspect Ratios =====
These are useful for consistent image sizes between choices.
==== Templates/Image Position ====
Templates change the placement and position of an accompanying image to a row or choice. The default behaviour is "Image Top", which places the image above the row or choice. The other two options are:
* '''Image Left''' – Places image to the left
* '''Image Right''' – Places image to the right
There is a third option, '''Image Bottom''', but curiously it is only available for Row Templates, and Choice Templates do not have that option.
==== Image Compression ====
=== Backpack & Choice Import ===
=== Changing Defaults ===
=== Uploading Your Project ===
== Advanced Mechanics ==
=== Addons ===
=== Copying ===
=== Words ===
=== Buttons & Variables ===
=== Groups ===
== Styling ==
=== Important Advice ===
'''BEFORE''' styling your CYOA, make your that the core functionality (text, scoring, logic, and images) of it is finished.
The reason is twofold:
# Because as you make your CYOA you might be tempted to make private styling choices, which is not advisable (the reasons of which are below)
# Excessive styling may slow down the preview slightly, meaning it will be that much harder to edit your CYOA.
'''BEFORE''' using private styling, make sure that you have styled all of the CYOA using the global options. This is because once private styling is turned on, the styling cannot be overridden by the global options.
So if, for example, you decide you like a different font in CYOA, but you have a dozen private stylized sections, you would need to either
# Go to each of those sections for each change you make, and change the private styling, or
# Turn off private styling to reset the styling, then reapplying the private style options for each section.
=== Style Templates ===
=== Colour Palettes ===
=== Backgrounds ===
==== Static Background ====
See [[#Making a Static Background]] for more.
=== Text ===
=== Filters ===
=== Private Styling ===
== Extending your CYOA ==
Congratulations, you have learnt the core mechanics of the Interactive CYOA Creator! However, this does not mean you are finished yet. There are more things to add and modify using external tools and code. This section deals with all that, and more.
=== Making a Table of Contents (Tabs Menu) ===
=== Progress Indicator ===
By default, Interactive CYOAs load with a blank white screen. This is fine for smaller CYOAs, but when it gets larger then depending on their internet speed, players can become unsure if it will ever load at all.
=== IntCYOAEnhancer script ===
The '''IntCYOAEnhancer''' script by [https://agregen.gitlab.io/ agregen] is a script hosted on Greasy Fork which adds features on the client-side when playing CYOAs. It is available [https://greasyfork.org/en/scripts/438947-intcyoaenhancer here].
Some of the features of this script include:
* A download progress indicator (see [[#Progress_Indicator|here]] for adding that to your own CYOA, whether they have this script or not)
* Game state tracking, meaning if you reload on accident you can keep your choices
* An overview of selected choices and sections
* An option to enable the backpack (where you can export your choices for import again) if it's not already enabled
* A download option for any interactive's <code>project.json</code> file
* A cheat engine to change points
==== Installation ====
To install this script, you first must install a relevant user script manager addon. See [https://greasyfork.org/en here] for a list of addons next to your browser under '''Step 1'''.
Here is a mirrored list (warning: may not be up to date):
{| class="wikitable sortable"
|+ User script managers by platform and application
|-
! Application !! Desktop !! Mobile (Android) !! Mobile (IOS)
|-
| '''Chrome''' || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] || ||
|-
| '''Firefox'''|| [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] || [https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/ Greasemonkey], [https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/ Tampermonkey], or [https://addons.mozilla.org/en-US/firefox/addon/violentmonkey/ Violentmonkey] ||
|-
| '''Safari''' || [https://www.tampermonkey.net/index.php?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts] || || [https://www.tampermonkey.net/?browser=safari Tampermonkey] or [https://apps.apple.com/app/userscripts/id1463298887 Userscripts]
|-
| '''Microsoft Edge''' || [https://microsoftedge.microsoft.com/addons/detail/tampermonkey/iikmkjmpaadaobahmlepeloendndfphd Tampermonkey] or [https://microsoftedge.microsoft.com/addons/detail/violentmonkey/eeagobfjdenkkddmbclomhiblgggliao Violentmonkey] || ||
|-
| '''Opera''' || [https://addons.opera.com/en/extensions/details/tampermonkey-beta/ Tampermonkey] or [https://violentmonkey.github.io/get-it/ Violentmonkey] (Violentmonkey points you to the Chrome Web Store)|| ||
|-
| '''Maxthon''' || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] || [https://extension.maxthon.com/detail/index.php?view_id=1680 Violentmonkey] ||
|-
| '''Adguard''' || (no additional software required) || ← || ←
|-
| '''Dolphin''' || || [https://play.google.com/store/apps/details?id=net.tampermonkey.dolphin Tampermonkey Dolphin] ||
|-
| '''UC''' || || [https://www.tampermonkey.net/?browser=ucweb&ext=dhdg Tampermonkey] ||
|-
| '''Kiwi''' || || [https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo Tampermonkey] or [https://chrome.google.com/webstore/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag Violentmonkey] ||
|-
| '''XBrowser''' || || [https://www.xbext.com/ XBrowser] (no additional software required) ||
|-
| '''Gear''' || || || [https://gear4.app/ Gear] (no additional software required)
|}
==== GitHub and other sites compatibility ====
This script is on by default for all Neocities sites, however, many [[Interactive CYOA]]s are hosted on [https://github.com GitHub] (such as Lt Ouroumov's Worm CYOA V6 fork), and as such the script needs to be edited for that (and for any other website hosts) as well.
To edit this, after installing, open up the extension, and underneath this:
<pre>// @match https://*.neocities.org/*</pre>
Add this line:
<pre>
// @match https://*.github.io/*
</pre>
The asterisk means "match anything that comes here".
=== Making a Static Background ===
A static background, as opposed to a continuous or overlapping background, is one that scrolls with the user, perfect for backgrounds that do not repeat perfectly.
An example of a continuous background is the [https://upasadena.github.io/cyoas/worm/v3/ Worm V3 Revised] interactive. No matter how far you scroll, the background stays in the exact same position.
It was first used in the [https://www.reddit.com/r/InteractiveCYOA/comments/w5mick/jedi_guardian_of_the_republic_interactive/ Jedi - Guardian of the Republic Interactive] CYOA, where the background fixes are attributed to [https://www.reddit.com/user/LOLLOL12344 u/LOLLOL12344].
<div class="res-img">[[File:NA_static_background.gif|link=]]</div>
To achieve this, simply add the following code in your <code>index.html</code>, above the <code><syntaxhighlight lang="html" inline><div id=app></div></syntaxhighlight></code> line.
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
This is the same code where the progress indicator is located, so if you wanted both it would look like this:
<syntaxhighlight lang="html" line>
<div id="indicator"><script>{let _XHR = XMLHttpRequest; XMLHttpRequest = class XHR extends _XHR {constructor () {
super();
this.addEventListener('progress', e => {indicator.innerText = " Loading data: " + (!e.total ? `${(e.loaded/1024**2).toFixed(1)} MB` : `${(100 * e.loaded / e.total).toFixed(2)}%`)});
this.addEventListener('loadend', () => {indicator.innerText = "",document.getElementsByClassName("pb-12")[0].style.cssText += "background-size: cover;background-position: center;background-attachment: fixed;"});
}}}</script></div>
</syntaxhighlight>
=== Saving Space ===
Saving space is a good idea for a myriad of reasons. It takes up less personal space, less space on website hosts, and it means your project loads faster for developers and for end users.
==== Compress Images ====
See [[#Image Compression]].
==== Use URLs for Images ====
The defining reason Interactive CYOAs often take up so much space, is because of the images. Whether they are simply large in size (See [[#Image Compression]]) or in number. A way to counteract this, is to simply not host the images, and link to it instead. This will also have the added benefit of not taking up space from whatever host you're using.
See how to do this at [[#External_Images]].
=== Custom HTML, CSS, and JavaScript ===
If you learn HTML, CSS, and/or JavaScript, you can apply it to your <code>index.html</code> file, further enhancing the appearance and behaviour of your Interactive CYOA.
==== Formatting ====
To format text within the CYOA, use these HTML tags:
===== Headings =====
{| class="wikitable"
|-
! Example !! HTML
|-
| <span style="display: block; font-size: 2em; margin-top: 0.67em; margin-bottom: 0.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 1</span> || <syntaxhighlight lang="html"><h1>Heading 1</h1></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.5em; margin-top: 0.83em; margin-bottom: 0.83em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 2</span> || <syntaxhighlight lang="html"><h2>Heading 2</h2></syntaxhighlight>
|-
| <span style="display: block; font-size: 1.17em; margin-top: 1em; margin-bottom: 1em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 3</span> || <syntaxhighlight lang="html"><h3>Heading 3</h3></syntaxhighlight>
|-
| <span style="display: block; font-size: 1em; margin-top: 1.33em; margin-bottom: 1.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 4</span> || <syntaxhighlight lang="html"><h4>Heading 4</h4></syntaxhighlight>
|-
| <span style="display: block; font-size: .83em; margin-top: 1.67em; margin-bottom: 1.67em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 5</span> || <syntaxhighlight lang="html"><h5>Heading 5</h5></syntaxhighlight>
|-
| <span style="display: block; font-size: .67em; margin-top: 2.33em; margin-bottom: 2.33em; margin-left: 0; margin-right: 0; font-weight: bold;">Heading 6</span> || <syntaxhighlight lang="html"><h6>Heading 6</h6></syntaxhighlight>
|}
===== Text Formatting =====
{| class="wikitable"
|-
! Example !! HTML !! Notes
|-
|-
| This is '''bold''' text || <syntaxhighlight lang="html"><b>Bold</b></syntaxhighlight> or <br><syntaxhighlight lang="html"><strong>Strong</strong></syntaxhighlight> || The HTML <nowiki><b></nowiki> is a physical tag used to simply make text bold.<br><br>The HTML <nowiki><strong></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is of higher importance. This is shown by making the text bold.
|-
| This is ''italicized'' text || <syntaxhighlight lang="html"><i>Italics</i></syntaxhighlight> or <br><syntaxhighlight lang="html"><em>Emphasis</em></syntaxhighlight> || The HTML <nowiki><i></nowiki> tag is a physical tag used to make the text italic. It is used to indicate foreign text, scientific nomenclature, thoughts, etc.<br><br>The HTML <nowiki><em></nowiki> tag is a semantic tag that is used to signify that the text inside the tag is being emphasized. It is a semantic tag as opposed to <nowiki><i></nowiki> which doesn't hold any semantic meaning.
|-
| This is '''''bold and italicized''''' text || <syntaxhighlight lang="html"><b><i>bold and italicized<i/></b></syntaxhighlight><br><br>or<br><br><syntaxhighlight lang="html"><i><b>bold and italicized<b/></i></syntaxhighlight>
|-
| This is <sup>superscript</sup> text || <syntaxhighlight lang="html"><sup>superscript</sup></syntaxhighlight>
|-
| This is <sub>subscript</sub> text || <syntaxhighlight lang="html"><sub>subscript</sub></syntaxhighlight>
|-
| This is <big>big</big> text || <syntaxhighlight lang="html"><big>big</big></syntaxhighlight>
|-
| This is <small>small</small> text || <syntaxhighlight lang="html"><small>small</small></syntaxhighlight>
|-
| This is <u>underlined</u> text || <syntaxhighlight lang="html"><u>underlined</u></syntaxhighlight>
|-
| This is <mark>highlighted</mark> text || <syntaxhighlight lang="html"><mark>highlighted</mark></syntaxhighlight>
|-
| This is <del>deleted</del> text || <syntaxhighlight lang="html"><del>deleted</del></syntaxhighlight> || The HTML <nowiki><del></nowiki> tag is a semantic tag used to represent that the text is deleted or changed.
|-
| This is <del>insreted</del><ins>inserted</ins> text || <syntaxhighlight lang="html"><ins>inserted</ins></syntaxhighlight> || The HTML <nowiki><ins></nowiki> tag is a semantic tag used to represent that the text has been inserted in the document. The <nowiki><ins></nowiki> tag generally follows some deleted text.
|}
===== Lists =====
==== Learning Resources ====
There are a plethora of free and paid resources for learning HTML and CSS on the internet, in a variety of formats. Depending on how you learn, you may prefer hard documentation, or maybe a video to guide you along the process.
Here are some free resources you can try:
'''HTML:'''
* [https://www.programiz.com/html Programiz] (Easy to understand)
* [https://www.w3schools.com/html/default.asp W3Schools]
'''CSS:'''
* [https://www.w3schools.com/css/default.asp W3Schools]
'''JavaScript:'''
* [https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/ freeCodeCamp] (Interactive)
* [https://www.w3schools.com/js/default.asp W3Schools]
'''Multiple''':
* [https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web Mozilla docs] (HTML, CSS, and JavaScript. Comprehensive, but can be hard to follow for beginners)
* [https://www.freecodecamp.org/learn/2022/responsive-web-design/ freeCodeCamp] (Interactive) (HTML and CSS only)
== The End ==
You're finished! B
6d410182ded23712ba8511f99a5ac36eeaa60c9e